版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、插入(不带头结点),插入(三种情况) 第一种情况:在第一个结点前插入,(插入前) (插入后),L,newnode,newnode,a1,a2,a1,a2,x,x,newnode-next = L ; L= newnode;,L,第二种情况:在链表中间插入,(插入前) (插入后),newnode,p,newnode,p,newnode-next= p-next; p-next = newnode;,第三种情况:在链表末尾插入,p,(插入前) (插入后),newnode,newnode,p,newnode-next = p-next; p-next = newnode;,算法描述 int Inse
2、rt ( LinkList L, int x, int i ) /在链表第 i 个结点处插入新元素 x Lnode * p = L; int j = 1; while ( p != NULL ,/创建新结点,newnode-data = x; if ( L = NULL | i = 1 ) /插入空表或非空表第一个结点之前 newnode-next = L;/新结点成为第一个结点 L= newnode; else /插在表中间或末尾 newnode-next= p-next; p-next = newnode; return 1; ,带头结点的单链表,头结点位于表的最前端,本身不带数据,仅标志
3、表头。 设置头结点的目的: 简化链表操作 (不管单链表是否为空,头指针均不为空;并使得对单链表的操作在各种情况下统一)。,插入,s-next = p-next; p-next= s;,L,s,L,s,L,s,L,s,p,p,p,p,插入前,插入后,s,s,插入,p,p,s-next = p-next; p-next= s;,int Insert (LinkList L, ListData x, int i ) /将新元素 x 插入在链表中第 i 号结点位置 ListNode * p = Locate ( L, i-1 ); if ( p = NULL ) return 0; /参数i值不合理返
4、回0 ListNode * newnode = /创建新结点 (ListNode *) malloc (sizeof (ListNode) ); newnode-data = x; newnode-link = p-link; /链入 p-link = newnode; return 1; ,删除,q = p-link; p-link = q-link; free(q);,删除前,(非空表),(空表),L,L,p,q,p,q,L,删除后,int delete ( LinkList L, int i ) /将链表第 i 号元素删去 ListNode * p, * q p = Locate ( L
5、, i-1 ); /寻找第i-1个结点 if ( p = NULL | p-link = NULL) return 0;/i值不合理或空表 q = p-link; p-link = q-link; /删除结点 free ( q ); /释放 return 1; ,单链表清空,void makeEmpty ( LinkList first ) /删去链表中除头结点外的所有其它结点 Lnode *q; while ( first-next != NULL ) /当链不空时,循环逐个删去所有结点 q = first-next; first-next = q-next; free( q ); /释放
6、,计算单链表长度,int Length ( LinkList first ) Lnode *p = first-next; /指针 p 指示第一个结点 int count = 0; while ( p != NULL ) /逐个结点检测 p = p-next; count+; return count; ,按值查找,Lnode * Find ( LinkList first, DataType x ) /在链表中从头搜索其数据值为x的结点 Lnode * p = first-next; /指针 p 指示第一个结点 while ( p != NULL ,按序号查找(定位),Lnode * Locate ( LinkList first, int i ) /返回表中第 i 个元素的地址 if ( i next != NULL ,LinkList createListR ( void ) char ch; LinkList L = /建立头结点 (LinkList) malloc (sizeof (Lnode); Lnode *s, *r ; L-next = NULL; r=L; while ( (ch = getchar( ) ) != n ) s =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河道工程施工实施方案
- 人工湿地污水处理施工方案及技术措施
- 现代农业园区建设施工方案及技术措施
- 2025年下半年教师资格考试幼儿园综合素质试卷及答案解析
- 2026年初级电工证考试题库及参考答案大全
- 地砖楼地面与机电管线综合配合方案
- 制冷空调系统安装维修工考试题及答案(新版)
- 《曹冲称象》课件
- 吉安市卫生学校2026年公开选调工作人员【12人】笔试题库含答案详解(培优)
- 2026四川凉山州急需紧缺专业大学生顶岗实习招募285人笔试题库附参考答案详解(A卷)
- 2026广东梅州综保区开发建设有限公司招聘2人考试备考题库及答案详解
- 安全监理策划方案
- 广东省珠海市香洲区2024-2025学年五年级下学期期末数学试题(含答案)
- 2026年高考真题-历史(陕晋青宁卷) 含解析
- 2026《危险化学品安全法》对标自查表(Excel适配版)
- 2026-2030中国有机液态氢行业产能预测与投资战略规划可行性研究报告
- 2026云南昆明市延安医院招聘编外人员备考题库及一套参考答案详解
- 2026年江苏高中提前自主招生考试数学试卷试题(含答案详解)
- 陕西国硒谷富硒产品研发中心有限公司招聘笔试题库2026
- 2026年出版社编辑岗位招聘笔试练习题及答案
- 2026年生产安全事故应急预案编制导则全文
评论
0/150
提交评论