【信息技术 】链表 课件 浙教版(2019)高中信息技术选修1.pptx
《【信息技术 】链表 课件 浙教版(2019)高中信息技术选修1.pptx》由会员分享,可在线阅读,更多相关《【信息技术 】链表 课件 浙教版(2019)高中信息技术选修1.pptx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2.2 2.2 链表链表导入小华规划自驾游路线,出发地为杭州,目的地为北京,在规划过程中经过了多次更改。原计划的途径地为上海、苏州、南京、济南、石家庄.第一次在南京和济南之间加入了途径地青岛,第二次取消了途径地南京.用数组来实现其更改过程。杭州杭州苏州苏州南京南京济南济南石家庄石家庄 北京北京青岛青岛数组a 0 1 23 4 5 67a=杭州,上海,苏州,南京,济南,石家庄,北京,n=len(a)p=4for i in range(n-2,p-1,-1):_n+=1print(a)ai+1=ai ap=”青岛”第一次:上海上海导入小华规划自驾游路线,出发地为杭州,目的地为北京,在规划过程中经过
2、了多次更改。原计划的途径地为上海、苏州、南京、济南、石家庄.第一次在南京和济南之间加入了途径地青岛,第二次取消了途径地南京.用数组来实现其更改过程。杭州杭州上海上海苏州苏州南京南京济南济南石家庄石家庄北京北京青岛青岛第二次:a=杭州,上海,苏州,南京,青岛,济南,石家庄,北京n=len(a)q=3for i in range(_):ai=ai+1 a.pop()n-=1print(a)q,n-1数组a 0 1 23 4 5 67导入小华规划自驾游路线,出发地为杭州,目的地为北京,在规划过程中经过了多次更改。第一次依次加入的途径地为上海、苏州、南京、济南、石家庄;第二次在南京和济南之间加入了途径
3、地青岛,取消了途径地南京;用数组来实现其更改过程。杭州杭州苏州苏州济南济南石家庄石家庄北京北京青岛青岛数组的缺点:插入和删除元素操作需要移动大量的元素频繁增、删数据导致数据规模不稳,形成存储空间“碎片”需要限定最大空间,造成资源浪费链表适用于当数据规模不确定或初始时确定但在处理过程中由于频繁增、删数据导致数据规模不稳定的问题。数组a 0 1 23 4 5 67上海上海链表基本概念链表指的是将需要处理的数据对象以节点的形式,通过指针串联在一起的一种数据结构。链表基本概念:链表节点结构保存数据元素 保存相邻节点的存储地址头指针(head)作用:一是链表的入口,只有通过头指针才能进入链表二是为循环链
4、表设立一个边界,便于数据处理时的边界判断和处理吴坚黄刚王林李丰headnextnextnext链表基本概念根据每个节点中指针的数量分为:单向链表:循环链表:第一个节点和最后一个节点使用指针链接,这样就形成了循环链表。nextprevdata next双向链表:prev data nextprevprevnext:指向其后继节点prev:指向其前驱节点链表基本概念单向链表中各个节点在内存中可以随意存储,每个节点使用指针指向其后继节点的存储地址。进入链表只能通过头指针head,其他节点则需要经过所有在它之前的节点才可以访问,尾结点的指针指向为null,表示指向为空。链表的特性(1)同一链表中每个节
5、点的结构均相同数据类型相同指针数量和功能相同(2)每个链表必定有一个头指针,以实现对链表的引用和边界处理链表的头指针使用变量head表示,用来进入链表。当访问链表中某一节点,只能从头指针开始,通过指针链接依次访问,不能使用下标直接引用。对于循环链表,一轮访问的开始和结束都可以用借助头指针指向位置来进行判断,即边界处理。head(3)链表占用的空间不固定链表的节点间是通过指针链接,相邻节点存储时不需要连续的空间。所以链表的存储空间由节点数决定,改变节点数就能改变链表的存储空间。链表的基本操作Python中没有直接定义链表结构,可以使用其提供的列表来模拟实现。实现单向链表时,列表中的每个数据项作为
6、链表中的一个节点,包含两个数据,一个作为数据域存储具体数据,另一个作为指针域存储后继节点在列表中的指针。用列表的索引来代替地址指针,并规定列表索引均为正索引,当某个指针区域值为-1时表示指向为空,该节点为尾节点。b=165,2,160,-1,162,1,172,0head=31652160-1162117200123head1721651621600123数组存储顺序存储链表存储非顺序存储data next头节点尾节点数据区域 指针区域空链表的创建其中head值为1,表示头指针指向为空,该链表为空链表。创建链表时,首先要根据问题特点规划节点的数据域和指针域,然后根据规划创建一个空表和头节点。接
7、下来就可以根据输入的实际数据形成节点并逐步插入到已有的链表中。item=head=-1练习1.使用python 的二维列表来模拟单向链表,如下代码创建了一个拥有4个节点的链表a:a=“hello”,1,“china”,3,“Olympics”,-1,“winter”,2head=0a11的值为:A.1 B.2 C.0 D.3a11的含义是什么?Dchina后面指向的下一个节点是“winter”,2链表的访问链表只能通过头指针(head)进行访问,其他节点通过节点间的指针依次访问。如图,当想访问单向链表中data3所在的节点时,需通过头指针进入链表,再分别按照各个节点的指针指向经过data1和d
8、ata2所在节点,最后通过data2所在节点的指针才能访问data3所在的节点。链表的插入3newdatadata1data22data3-1head在单向链表data1和data2所处节点的中间位置插入一个新节点31012思想:当需要在链表中某个位置中插入一个新元素时,只需将元素添加在尾部,并改动指针值data.append(newdata,0)1.将元素添加在尾部:列表名datadata31=data012.修改指针值:data01=3链表的插入data81=data11data11=82.修改指针值:思想:当需要在链表中某个位置中插入一个新元素时,只需将元素添加在尾部,并改动指针值0da
9、ta8-11data372data163data654data535data706data217data44head列表名data列表索引0data8-11data372data163data654data535data706data217data448new0data8-11data382data163data654data535data706data217data448new7headheaddata.append(new,7)1.将元素添加在尾部:链表的插入现有链表b=165,2,160,-1,162,1,172,0,要实现分别在链表头部插入数据175,请思考插入过程,并尝试用代码实现。
10、1652160-11621172017501234head在链表头部插入元素 172016521621160-1175 3head b=165,2,160,-1,162,1,172,0head=3_#插入新节点head=_#修改头指针print(b)3b.append(175,3)4链表的插入现有链表b=165,2,160,-1,162,1,172,0,要实现分别在链表中间插入数据163,请思考插入过程,并尝试用代码实现。1652160-11621172016301234head在链表中间插入元素 172016521621160-1163 2head b=165,2,160,-1,162,1,
11、172,0head=3#插入新节点pre=headcur=headwhilecur!=-1:ifbcur0=163:pre=curcur=bcur1else:_break 2b.insert(4,163,bpre1)bpre1=4 4 4curpre链表的插入现有链表b=165,2,160,-1,162,1,172,0,要实现分别在链表头部插入数据159,请思考插入过程,并尝试用代码实现。1652160-11621172015901234head在链表尾部插入元素 172016521621160-1159-1head b=165,2,160,-1,162,1,172,0head=3#插入新节点
12、cur=head#当前访问节点的索引值whilecur!=-1:#查找尾节点pre=curcur=bcur1_-1b.append(159,-1)bpre1=4 4 4curpre练习从头部插入从中间插入从尾部插入a=t,2,y,0,“o,-1,p,1head=1new_data=xa.append(new_data,head)head=len(a)-1print(head,a)a=t,2,y,0,o,-1,p,1head=3new_data=xp=0a.append(new_data,ap1)ap1=len(a)-1print(head,a)a=t,4,y,0,o,-1,p,1head=3n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息技术 【信息技术 】链表 课件 浙教版2019高中信息技术选修1 信息技术 链表 浙教版 2019 高中 选修
限制150内