2.2.1 链表的概念、特性、基本操作 ppt课件 数据 与数据结构-新浙教版(2019)《高中信息技术》选择性必修第一册.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《2.2.1 链表的概念、特性、基本操作 ppt课件 数据 与数据结构-新浙教版(2019)《高中信息技术》选择性必修第一册.pptx》由用户(Q123)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中信息技术 2.2.1 链表的概念、特性、基本操作 ppt课件 数据 与数据结构_新浙教版2019高中信息技术选择性必修第一册 2.2 概念 特性 基本 操作 ppt 课件 数据结构 新浙教版 下载 _选修1 数据与数据结构_浙教版(2019)_信息_高中
- 资源描述:
-
1、选择性必修1数据与数据结构第二章 数组与链表 2.2.1链表的概念、特性、基本操作情境导入排队与插队情境导入排队与插队数组的缺点:插入和删除元素操作需要移动大量的元素 频繁增、删数据导致数据规模不稳,形成存储空间“碎片”需要限定最大空间,造成资源浪费链表基本概念整队前的位置和链接关系链表指的是将需要处理的数据对象以结点的形式,通过指针串联在一起的一种数据结构。链表结点结构保存数据元素 保存相邻结点的存储地址链表基本概念:头指针(head)作用:一是链表的入口,只有通过头指针才能进入链表二是为循环链表设立一个边界,便于数据处理时的边界判断和处理链表基本概念链表的基本概念根据每个结点中指针的数量分
2、为:单向链表:双向链表:循环链表:第一个结点和最后一个结点使用指针链接,这样就形成了循环链表。next吴坚黄刚王林李丰headnextnextnext链表基本概念 单向链表中各个结点在内存中可以随意存储,每个结点使用指针指向其后继结点的存储地址。进入链表只能通过头指针head,其他结点则需要经过所有在它之前的结点才可以访问,尾结点的指针指向为null,表示指向为空。链表的特性(1)同一链表中每个结点的结构均相同数据类型相同指针数量和功能相同(2)每个链表必定有一个头指针,以实现对链表的引用和边界处理head(3)链表占用的空间不固定链表的基本操作链表的创建Item=Head=-1其中head值
3、为1,表示头指针指向为空,该链表为空链表。创建链表时,首先要根据问题特点规划结点的数据域和指针域,然后根据规划创建一个空表和头结点。接下来就可以根据输入的实际数据形成结点并逐步插入到已有的链表中。链表的基本操作链表的访问 链表只能通过头指针(head)进行访问,其他结点通过结点间的指针依次访问。如图,当想访问单向链表中data3所在的结点时,需通过头指针进入链表,再分别按照各个结点的指针指向经过data1和data2所在结点,最后通过data2所在结点的指针才能访问data3所在的结点。链表的基本操作链表结点的插入与删除New datanextdata1nextdata2nextdata3-1
4、headNew datanextdata1nextdata2nextdata3-1headnext在单向链表data1和data2所处结点的中间位置插入一个新结点1.在单向链表中插入新结点时,指针指向的修改是否必须有先后?如果将其顺序逆转,能否完成新结点的插入?为什么?链表的基本操作链表结点的插入与删除在列表模拟实现的链表中插入新结点的过程data81=data11data11=8实现语句:参考上图,描述出在有8个结点的单向链表中删除第一个结点、中间结点及尾结点的过程。链表的基本操作数据合并 (1)算法设计 初始化两个空链表data_a和data_b,并使用head_a和head_b作为两个链
5、表的头指针,其中data_a作为存储结果的链表。使用随机函数randint(start,end)模拟生成两个降序序列数据,生成新的结点在尾部插入。链表的基本操作数据合并 (1)算法设计 使用变量k_a与k_b指向两个链表中未合并的数据序列中最前面(值最大)的结点,初始化k_a=head_a,k_b=head_b,由于在链表data_a中需要进行插入结点的操作,必须记录插入位置的前驱结点,使用变量q_a,初始化q_a=head。重复以下操作,直到k_a或k_b指向空(即某个链表元素全部处理完):比较data_ak_a0和data_bk_b0的大小。若data_ak_a0data_bk_b0,则修
6、改q_a与k_a相等,再将k_a指向下一个结点;否则将链表data_b中k_b指向的结点插入到链表data_a中,作为q_a指向结点的后继结点,再将k_b指向链表data_b中的下一个结点。若k_b未指向空,则将链表data_b剩余结点按顺序插入链表data_a的尾部。输出链表data_a中每个结点的数据区域的值。链表的基本操作数据合并程序实现程序测试结果from random import randintdata_a=head_a=-1data_b=head_b=-1tmp=randint(95,100)data_a.append(tmp,head_a)head_a=0for i in ra
7、nge(1,20):tmp=data_ai-10-randint(1,5)data_a.append(tmp,data_ai-11)data_ai-11=iprint(链表结构的原始数据序列一)print(data_a)链表结构的原始数据序列一99,1,98,2,94,3,93,4,91,5,89,6,85,7,84,8,79,9,75,10,72,11,71,12,66,13,64,14,59,15,54,16,52,17,48,18,44,19,43,-1链表的基本操作数据合并程序实现程序测试结果tmp=randint(95,100)data_b.append(tmp,head_b)hea
8、d_b=0for i in range(1,25):tmp=data_bi-10-randint(1,5)data_b.append(tmp,data_bi-11)data_bi-11=iprint(链表结构的原始数据序列二)print(data_b)#初始化列表索引k_a=head_aq_a=head_ak_b=head_b链表结构的原始数据序列二98,1,95,2,93,3,91,4,90,5,89,6,84,7,80,8,79,9,75,10,71,11,69,12,68,13,63,14,58,15,56,16,52,17,47,18,42,19,41,20,38,21,34,22,3
展开阅读全文
链接地址:https://www.163wenku.com/p-5180007.html