(1) ADT
typedef int ElemType
typedef struct Node{
ElemType data;
struct Node * next;
}Node;
typedef struct Node* linkList;
(2) int initList(linkList *L)
int initList(linkList *L)
{
(*L) = (linkList)malloc(sizeof(Node));
(*L)->next = NULL;
printf("create initial successfully\n");
return 1;
}
链表的插入。在那些函数中,我们无法使用简单赋值,因为变量名在函数的作用域内部是未知的。函数所拥有的只是一个指向需要修改的内存位置的指针,所以要对该指针进行间接访问操作以访问需要修改的变量。
(3) int createListHead(linkList *L,int n)
int createListHead(linkList *L,int n){
linkList p;
int i=0;
srand((int)time(0));
for( i = 0;i < n;i++)
{
p = (linkList malloc sizeof(Node);
p ->data = rand() %100;
printf("testing:Node[%d]=%d\n",i+1,p->data);
p->next = (*L)->next;
(*L)->next = p;
}
printf("linklist(headinsert) create successfully.\n");
return 1;
}
int createListTail(linkList *L,int n){
linkList p,temp;
temp = (*L);
int i;
srand((int)