单链表的插入与删除
来源:互联网 发布:网络主播涉黄 编辑:程序博客网 时间:2024/05/21 03:24
单链表的插入:
s->next=p->next;
p->next=s;
让p的后继结点改成s的后继结点,再把结点s变成p的后继结点。
注意:两句话的顺序不能交换。如果交换,则使得p->next给覆盖成s的地址。
/*初始条件:顺序线性表L已存在*//*操作结果:在L中第i个结点位置之前插入新的数据元素e,L的长度加1*/Status ListInsert(LinkList *L,int i,ElemType e){int j;LinkList p,s;p=*L; /*p指向链表表头*/j=1;while(p&&j<i){p=p->next;++j;}if(!p||j>i){return ERROR;/*第i个结点不存在*/}s=(LinkList)malloc(sizeof(Node));/*生成新节点(stdlib.h)*/s->data=e;s->next=p->next;p->next=s;/*让p的后继结点改成s的后继结点,再把结点s变成p的后继结点*/return OK;}
单链表的删除:
将要删除结点q的前继结点指针绕过,指向它的后继结点。
q=p->next;
p->next=q->next;
/*初始条件:顺序线性表L已存在*//*操作结果:在L中删除第i个结点,用e返回其值,L的长度减1*/Status ListInsert(LinkList *L,int i,ElemType e){int j;LinkList p,q;p=*L; /*p指向链表表头*/j=1;while(p&&j<i){p=p->next;++j;}if(!p||j>i){return ERROR;/*第i个结点不存在*/}q=p->next;p->next=q->next;/*将要删除结点q的前继结点指针绕过,指向它的后继结点*/ *e=q->data;free(q);/*让系统回收此结点,释放内存*/return OK;}
0 0
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 单链表的插入与删除
- 链式单链表的插入与删除...
- 单链表的创建插入与删除
- 单链表的插入与删除算法
- 单链表的插入与删除节点
- c语言 单链表的插入与删除
- 单链表的插入节点与删除节点
- 【数据结构】单链表的插入与删除
- 数据结构-单链表的读取,插入与删除
- 红黑树的插入与删除
- 双链表的插入与删除
- windows下的类似linux下的grep命令——findstr
- 美眉视频-八小时创造的APP竟能融资100万美元
- 漂亮的侧滑主页(仿QQ、腾讯QQ首页侧滑效果)
- AfxBeginThread和AfxEndThread
- 数据结构之堆排序
- 单链表的插入与删除
- 《Windows核心编程5》第19章-DLL基础
- NIO框架之MINA源码解析(五):NIO超级陷阱和使用同步IO与MINA通信
- 很久没写blog,之前写的一坨不好东西见谅啊.这次给大家介绍quick-x的一些新特性quick-cocos2d-x
- SQL SERVER 表结构信息查询(详细)
- 计算文本宽高
- 使用XmlPullParser解析xml文件
- error while loading shared libraries: xxx.so.x"错误的原因和解决办法
- opencv依赖项