今日学习任务:
单链表
今日收获:
了解传递指针和传递二级指针的区别,通过excel展示的方式,直观感受到调用函数时地址空间的操作,受益匪浅。
今日遇到的困难:
代码码好,有时会出现一些奇怪的错误,今天多次出现段错误,经搜索是对指针的操作有误。
今日学习评价:心情较好,自己动手一步一步分析并码代码。
44 int ListLength(LinkList L)
45 {
46 int i=0;
47 LinkList p=L->next;
48 while(p!=NULL)
49 {
50 p=p->next;
51 i++;
52 }
53 return i;
54 }
Status EmptyList(LinkList L)
57 {
58 LinkList p=L->next;
59 if(p==NULL)
60 {
61 printf("LinkList is Empty!\n");
62 return 1;
63 }
64 return 0;
65 }
67 Status InsertList(LinkList L,int n,ElemType e)
68 {
69 LinkList p=L,q;
70 if(!InitList(&L))
71 {
72 printf("malloc failed!");
73 return ERROR;
74 }
75 else
76 {
77 if(n>ListLength(L)+1||n<1)
78 {
79 printf("location is error!");
80
81 return ERROR;
82 }
83 int i=1;
84 while(p!=NULL&&i<n)
85 {
86 p=p->next;
87 i++;
88 }
89 q= (LinkList)malloc(sizeof(Node));
90 if (q == NULL)
91 {
92 printf("malloc error!\n");
93 return ERROR;
94 }
95 q->data=e;
96 q->next=p->next;
97 p->next=q;
98 return OK;
99 }
100 }
103 int main(int argc,char *argv[])
104 {
105 LinkList L;
106 Status i;
107 i=InitList(&L);
108 printf("the length of list is %d\n",ListLength(L));
109
110 // printf("the length of list is %d\n",ListLength(L));
111
112 // printf("the length of list is %d\n",ListLength(L));
113 EmptyList(L);
114 int n=1,e=2;
115 //printf("please input ");
116 InsertList(L,n,e);
117 printf("the length of list is %d\n",ListLength(L));
118 return 0;
119 }