《数据结构——单链表》由会员分享,可在线阅读,更多相关《数据结构——单链表(11页珍藏版)》请在金锄头文库上搜索。
1、数据结构单链表的删除,制作人:王艳群 10级数本(1)班 学号:201040431029,单链表的删除,定义:单链表的删除就是从单链表中将其中某一个里面的存在的数删除的操作。(从表中删除任意一个结点,比向表中插入任意个数要复杂,因为删除依赖于结点的位置。),实现步骤: 将第i+1 至第n 位的元素向前移动一个位置; 表长减1。 注意:事先需要判断,删除位置i 是否合法?,删除线性表的第i个位置上的元素,for ( j=i+1; jlink=node-link; Else*ptr =(*ptr)-link; Free (node); ,从 单链表中删除一个元素,在链表中删除某元素b的示意图如下:
2、,删除动作的核心语句(要借助辅助指针变量q):,q = p-next; /首先保存b的指针,靠它才能找到c; p-next=q-next; /将a、c两结点相连,淘汰b结点; free(q) ; /彻底释放b结点空间,p-next,(p-next) - next,q,单链表的删除操作实现(P30算法2.10) int ListDelete(SLNode *head, int i, DataType *x) SLNode *p, *s; int j; (1) p = head; j = -1; while(p-next != NULL ,编程实现:建立一个单链表,首先依次输入数据元素,10,然后删除数据元素,最后依次显示当前表中的数据元素。,#include #include #include typedef int DataType; #include “LinList.h“ void main(void) SLNode *head; int i , x; ListInitiate( ,for(i = 0; i ListLength(head); i+) if(ListGet(head, i, ,