版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-2-211关于不同结构链表的思考2022-2-212链表的不同组织形式l单向向后l单向向前l单向循环l包括向后循环,向前循环的组织方式851012头指针头指针851012头指针头指针尾指针尾指针851012头指针头指针2022-2-213链表的不同组织形式l双向链表61296129struct Node int data ; struct Node *preceding , *next ;2022-2-214* 问题的提出l 链表基本操作中表现出的问题: 边界条件的单独处理!2022-2-215l 以单向、向后链表为例l 链表的边界状态: 空表状态进行插入结点操作 非空表,插入的数据
2、结点作为链表的第一个数据结点 非空表,删除链表中的第一个数据结点l 总结: 边界状态造成了链表每一次操作的检验和相关状态的单独处理。 2022-2-216l 向后链表插入结点边界条件1 向非空表中插入第一个数据结点 初始状态:head != NULL 插入结点: cp 操作:cp-next = head ; head = cp; 比较一般插入结点操作 初始状态:work 指定插入位置 插入结点:cp 操作:cp-next = work-next ; work-next = cp ;2022-2-217l 向后链表插入结点边界条件2 向空表中插入第一个数据结点 初始状态:head = NULL
3、插入结点: cp 操作:head = cp ; 比较一般插入结点操作 初始状态:work 指定插入位置 插入结点:cp 操作:cp-next = work-next ; work-next = cp ;2022-2-218引入带头结点的链表l带头结点链表的逻辑形式1006headX2001100661024491052头指针头结点:链表中的第一个结点,其数据内容为空(无效),链表的第一个有效数据结点总是连接在头结点之后。2022-2-219引入带头结点的链表l带头结点链表的空表状态与设置实现1006headX20011006头指针头结点:链表中的第一个结点,其数据内容为空(无效),链表的第一个
4、有效数据结点总是连接在头结点之后。空表状态的程序设置:cp=(struct Nd*) malloc(sizeof(struct Nd)if(cp=NULL) exit(0);cp-next = NULL;head = cp;2022-2-2110引入带头结点的链表l带头结点链表的边界条件分析1006headX2001100661024491056头指针2466101010421、向空表中插入第一个数据结点、向空表中插入第一个数据结点2、插入结点作为链表的第一个数据结点、插入结点作为链表的第一个数据结点头结点2022-2-2111引入带头结点的链表l向空表中插入第一个数据结点1006headX2
5、0011006头指针空表中存在一个头结点:定位:work = head;cp-next = work-next;work-next = cp; 非空表的插入:定位:work指向插入位置之前的数据结点,插入操作:cp-next = work-next;work-next = cp;6cp2022-2-2112引入带头结点的链表l向非空表中插入第一个数据结点1006headX20011006头指针非空表中存在一个头结点:定位:work = head;cp-next = work-next;work-next = cp; 非空表的插入:定位:work指向插入位置之前的数据结点,插入操作:cp-nex
6、t = work-next;work-next = cp;2cp62022-2-2113引入带头结点的链表l 结论: 在链表中引入头结点,简化了链表的边界状态的特殊处理,能够将边界状态合并为链表的一般状态,简化了链表的基本操作。 检验头结点对于链表结点删除的影响: 删除链表的第一个数据结点 删除链表中唯一的数据结点2022-2-2114无头结点向后链表的结点删除一般操作 定位条件: worknextdata=sdata5689headtailwork2022-2-2115无头结点向后链表结点删除的一般操作需要利用被删除结点的指针作链接 worknext = (worknext)next5689
7、headtailwork2022-2-2116无头结点向后链表结点删除的一般操作需要利用被删除结点的指针作链接 delp=worknext;worknext = (worknext)nextfree(delp)5689headtailwork2022-2-2117无头结点向后链表结点删除的边界分析删除操作发生在链表的边界操作不仅涉及work,而且涉及head或tail569headtailwork2022-2-2118无头结点向后链表结点删除的边界分析1删除第一个数据结点: delp = head; head = head-next; free(delp);569headtaildelp202
8、2-2-2119无头结点向后链表的结点删除边界分析2删除末尾数据结点: delw=work-next; work-next = work-next-next; free(delw);可以归结到一般结点删除处理。569headtailwork2022-2-2120带头结点向后链表的结点删除边界分析1删除第一个数据结点:work = head; delp=work-next; work-next = work-next-next; free(delp);可以归结到一般结点删除处理。X69headtailwork2022-2-2121引入带头结点的链表l删除链表的第一个数据结点1006headX20
9、01100661024491056头指针246610101042头结点非空表中存在一个头结点:定位:work = head; delp = work-next; work-next=delp-next; free(delp);非空表一般结点的删除:定位:work指向被删除结点之前 delp = work-next; work-next=delp-next; free(delp);2022-2-2122引入带头结点的链表l删除链表中唯一的一个数据结点1006headX2001100661024头指针头结点非空表中存在一个头结点:定位:work = head; delp = work-next;
10、work-next=delp-next; free(delp);非空表一般结点的删除:定位:work指向被删除结点之前 del = work-next; work-next=delp-next; free(delp);2022-2-2123链表基本操作小结l 无头结点链表 空表设置 head = NULL 插入:if (链表为空)空表插入操作 else if(插入为首结点) 首结点插入操作,移动头指针 else 一般定位、插入操作 删除:if(链表只有一个数据结点) 删除成为空表特殊操作 else if (删除链表的首届点) 首结点删除单独操作,移动头指针 else 一般定位、删除操作 2022-2-2124链表基本操作小结l 带头结点链表 空表设置 head = cp; cp-next = NULL; 插入:work 定位于插入位置之前的结点; cp = work-next; work-next = cp; 删除:work 定位于被删除结点之前的结点; delp = work-next; work-next = delp-next; free(delp); 2022-2-21252022-2-21262022-2-2127无头结点链表空表设置:head = tail = NULL;带头结点链表空表设置:head = tail =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省南阳市邓州市重点名校2025-2026学年初三第三次模拟考试英语试题含解析
- 邵东县2025-2026学年初三第五次中考模拟考试语文试题含解析
- 岳阳市湘阴县重点名校2025-2026学年初三下学期期末教学质量检测试题(Ⅰ)数学试题含解析
- 浙江省宁波市名校2026届初三暑假末结业考试物理试题含解析
- 江苏省东台市第四联盟市级名校2025-2026学年初三英语试题期末练习试卷含解析
- 重庆市七中学2025-2026学年初三下期第二次模拟考试英语试题文试题含解析
- (正式版)DB37∕T 3039-2017 《化妆品中溴硝丙二醇的测定 高效液相色谱法》
- 压疮护理中的护理实践与经验
- 2026年旅游管理专业导游证考取与带团技巧
- 2026年基站建设项目施工计划书
- 2026中交集团纪委第一办案中心社会招聘笔试历年常考点试题专练附带答案详解
- 2026年春季新教材教科版(2024)三年级下册科学全册教案
- 紫外线灯使用及安全指导
- GB/T 8554-2026电子和通信设备用变压器和电感器测试方法和试验程序
- 工业厂房改造项目风险评估报告
- 离婚后共同财产分割协议
- (2026年春季新版本)人教版二年级数学下册全册教案
- 《制药卫生》课件
- (完整版)杭州钱江新城中心区城市设计控规部分
- 中医治疗颈椎病课件完整版
- 器质性精神障碍的护理
评论
0/150
提交评论