收藏 分享(赏)

第8次课--链表结点的插入和删除.ppt

上传人:scg750829 文档编号:9036762 上传时间:2019-07-21 格式:PPT 页数:19 大小:317KB
下载 相关 举报
第8次课--链表结点的插入和删除.ppt_第1页
第1页 / 共19页
第8次课--链表结点的插入和删除.ppt_第2页
第2页 / 共19页
第8次课--链表结点的插入和删除.ppt_第3页
第3页 / 共19页
第8次课--链表结点的插入和删除.ppt_第4页
第4页 / 共19页
第8次课--链表结点的插入和删除.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、,首页,同学们加油,教案,主要内容,单链表中结点插入算法实现单链表中结点插入举例单链表中结点删除算法实现单链表中结点删除举例,链表结点的插入,在链表中插入结点有很多情况。下面以带附加头结点的单链表为例进行介绍。,单链表结点的插入(1),在指定结点的后面插入新结点插入过程图示(在p结点后面插入新结点q):,实现语句: q-next = p-next; p-next = q;,单链表结点的插入(2),在指定结点的前面插入新结点在p结点前面插入新结点q的步骤:(1)寻找p结点的前驱结点,使s指向它。(2)在s结点的后面插入q结点。实现语句:s=head;while (s-next!=p)s=s-ne

2、xt;q-next = s-next;s-next = q;,单链表结点的插入(3),在值为x的结点后插入一个值为y的结点步骤:(1)申请一个结点空间,用q指向它,并把y放入其中。(2)在链表中查找值为x的结点,找到后用p指向它。(3)在p结点后插入q结点。实现语句:,看源程序(8_1),单链表结点的插入(4),在值为x的结点前插入一个值为y的结点步骤:(1)申请一个结点空间,用q指向它,并把y放入其中。(2)在链表中查找值为x的结点,找到后用p指向它,pf指向它的前驱结点。(3)在pf结点后插入q结点。实现语句(两种方法):,看源程序(8_2),看源程序(8_3),返回,单链表结点插入举例,

3、【补例】将【例7-5】改成用菜单选择实现,并在此基础上增加插入功能。分析 插入时,按照以下几种情况进行: (1)插入到链首。 (2)插入到链尾。 (3)插入到指定值的后面。 (4)插入到指定值的前面。,主函数模块,【补例】将【例7-5】改成用菜单选择实现,并在此基础上增加插入功能。主函数流程图源程序,运行程序(8_4),看源程序(8_4),插入子模块,【补例】将【例7-5】改成用菜单选择实现,并在此基础上增加插入功能。插入子函数流程图源程序,运行程序(8_4),看源程序(8_4),返回,思考:不用附加头结点,任何修改?(8_6),链表结点的删除,在链表中删除结点也有很多情况。下面以带附加头结点

4、的单链表为例进行介绍。,单链表结点的删除(1),删除指定结点删除过程图示(删除q结点的后继结点p):,实现语句: q-next = p-next; free(p);,单链表结点的删除(2),删除值为x的结点步骤:(1)在链表中查找值为x的结点,找到后用p指向它,q指向它的前驱结点。(2)使p结点脱离链表。(3)释放p结点的内存空间。实现语句:,看源程序(8_5),返回,单链表结点删除举例,【补例】在【例7-5】的基础上增加删除功能。分析 删除时,按照以下几种情况进行: (1)删除链首结点。 (2)删除链尾结点。 (3)删除指定值的结点。,删除子模块,【补例】在【例7-5】的基础上增加删除功能。删除子函数流程图源程序,运行程序(8_4),看源程序(8_4),思考:不用附加头结点,任何修改?(8_6),任务相关部分,任务程序中的功能“添加一个学生”和“删除一个学生”,实际上就是在链表中插入和删除结点的过程。,本次课总结,单链表中结点插入算法实现单链表中结点插入举例单链表中结点删除算法实现单链表中结点删除举例,下课,Thank You!,The End.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报