thầy ơi sao mà cấu trúc dữ liệu có rất nhiều bài em đánh giống bài mẫu của thầy mà nó cứ báo lỗi hoài,thầy xem dùm em bài này
Code:
#include "conio.h"
#include "stdio.h"
#include "alloc.h"
typedef unsigned int Position;
typedef int ElementType;
typedef struct Node{
ElementType Element;
Node* Next;
};
typedef Node * List;
Node * Make_Node(ElementType x){
Node * temp = (Node*)malloc(sizeof(Node));
temp->Element = x;
return temp;
}
List MakeNull_List(){
List temp = (List)malloc(sizeof(List));
temp->Next = NULL;
return temp;
}
char Empty_List(List L){
return L->Next == NULL;
}
void Insert(List L, Node * p){
p->Next = L->Next;
L->Next = p;
}
void Insert(List L, Node * p, Position i){
List temp = L;
Position j = 1;
while(j<i && temp!=NULL)
{ temp = temp->Next;
j++;
}
if(i==j)
Insert(temp,p);
else
printf("\nThis position is not true.");
}
List Input_List(unsigned int n)
{ List temp = MakeNull_List();
ElementType x;
unsigned int i = 1;
while(i<=n)
{ printf("\tValue %d = ",i);
scanf("%d",&x);
Insert(temp,Make_Node(x));
i++;
} return temp;
}
void Out_List(List L)
{ List temp = L;
while(!Empty_List(temp))
{ printf("%d\t",temp->Next->Element);
temp = temp->Next;
}
}
void Delete_List(List L)
{ Node * p = L->Next;
L->Next = p->Next;
free(p);
}
void Delete_List(List L, Position i)
{ List temp = L;
Position j = 1;
while(j<i && temp!=NULL)
{ temp = temp->Next;
j++;
}
if(i==j)
Delete_List(temp);
else
printf("\nThis position is not true.");
}
void main()
{ clrscr();
unsigned int n;
Position p;
ElementType x;
printf("Nhap n = ");
scanf("%d",&n);
List S = Input_List(n);
printf("This List: \n");
Out_List(S);
printf("\nInput a value to inset: ");
scanf("%d",&x);
printf("Input a position to insert: ");
scanf("%d",&p);
Insert(S,Make_Node(x),p);
printf("The new List: \n");
Out_List(S);
printf("\nThe new list already deleles at the posiotion p:\n");
Delete_List(S,p);
Out_List(S);
getch();
}