List MakeEmpty() { struct LNode *p =(struct LNode*)malloc(sizeof(struct LNode)); p->Next = NULL; return p;//创建一个新的链表,返回p的指针位置 } Position Find(List L, ElementType X) { if (L->Next==NULL) { return ERROR; } while(L->Next !=NULL) { if(L->Next->Data==X)// { return L->Next; } L= L->Next; } return ERROR; } bool Insert (List L , ElementType X , Position P) { struct LNode *ptr =(struct LNode*)malloc(sizeof(struct LNode)); ptr->Data = X; while(L!=NULL) { if(L->Next ==P) { ptr -> Next = P; L->Next = ptr; return true;//判断如果l后记是p,那么就把p给了ptr,把ptr给了L } L= L->Next;//遍历,从表头开始 }//上面这个式子是这个的结局,return了都 printf("Wrong Position for Insertion\n");//要是不满足肯定得在这里输入一个不符合啊 return false; } bool Delete(List L, Position P) { while(L!=NULL) { if(L->Next==P) { L->Next = L->Next->Next; free(P); return true; } L = L->Next; } printf("Wrong Position for Deletion\n"); return false; }
基于这个小玩意儿实现了创建链表,新建元素,插入和删除(不区分头插和尾删)。
06-04
199
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交