线性存储结构第十章数组、链表.docx
《线性存储结构第十章数组、链表.docx》由会员分享,可在线阅读,更多相关《线性存储结构第十章数组、链表.docx(6页珍藏版)》请在优知文库上搜索。
1、线性存储结构事第十章数组、链表一、数组1.数组的特性(1)数组元素的数据类型相同(2)通过数组名和索引对数组元素进行访问(3)数组(主要指静态数组)在内存中的存储空间连续且固定不变(4)Python中没有数组这种结构,教材中使用列表来模拟数组的操作(5)二维数组在存储时也采用顺序存储,Python中对二维数组采用的是地选的存储方式。2.创建数组一维数组si=0*9#间接创建si=1,2,3,4#直接创建二维数组s2=0foriinrange(4)fbriinrange(4)#间接创建s2=1,24,5,68,9,10J1J2#直接创建3 .浅拷贝PyIhon中创建二维数组不能使用如同一维数组的
2、创建方式,如s2=0*4*4.这样在修改某行元素时会导致4行中同一列的数据会同时被修改。这与Python在创建变量时实际是创建了引用有关。以上这种情况被称之为浅拷贝。4 .列表生成式格式:元素表达式for循环语句if条件约束dl=i*iforiinrange(l()dl=(),1,4,9,16,25,36,49,64,81d2=i*iforiinrange(10)ifi%2=0d2=0,4,16,36,64d3=m+nfornin,ABCforninXYZ1d3=AX,AY,AZ,BX,BY,BZ,CX,CY,CZ,d4=s.lower()forsinABC,EDG,LSP,1d4=,abc,
3、edg,Isp5.在数组中插入数据/删除数据#在数组中插入数据(While循环为例)a=1,3,5,7,9,IT,13,15,17,19,0num=6#待插入数据i=0whileilen(a):#查找变量插入位置ifaii:#插入位置后的元素后移aj=aj-lj=j-1ai=num#数据插入print(a)#在数组中删除数据(for循环为例)a=1,3,5,7,9,11,13,15,17,19num=9#需要删除的元素i=0foriinrange(len(a):ifai=num:breakforjinrange(i+l,len(a):aj-l=ajai=0#末尾清空print(a)【注:】数组
4、由于自身特性,在执行插入和删除过程中都需要移动元素。而向前和向后移动元素时,需要防止元素相互覆盖,这一点需要特别小心。二、链表1 .链表的特性(1)同一链表中每个节点的结构均相同,包括值域的数据类型以及指针域的数量和功能(2)每个链表必定有一个头指针,实现对链表的引用和边界处理。链表访问只能从头指针开始,通过指针链接向后依次访问。(3)链表占用的存储空间不连续且不固定。链表的存储空间由节点数决定,增加或减少节点会改变链表占用空间。(4)PythOn没有直接定义链表结构,教材中用列表来模拟链表的操作。而在第十二章,会演示通过类方式创建链表的方法。2 .创建空链表item=#存储空间head=-l
5、#头指针(-1表示没有后继节点)3 .单向链表单向链表即链表节点的指针域只有一个指向下一个元素的后继指针。后面的操作中我们默认定义单向链表的节点格式为data,next,next存放的是节点在列表中的索引值。3.1 单向链表的元素遍历head=4item=5,2j7,3,9,5,2,-l,l,0,3,lp=head#运行结果l-5-9-3-7-2【注:】两种方式的区别已经用加框出标出。思考两个循环在结束时,遍历指针P所在的位置。#方式1strl=whilepi=-1:strl+=str(itemp0)+-p=itemp1#跳转到下一节点print(strl:-2)#清除最后的“#方式2whil
6、eIitempt!=-1:print(str(itemp0)+-,end=,)p=itemp1#跳转到下一节点print(itemp0)3.2在单向链表中插入节点在链表中执行插入和删除操作时,建议先建立模型,然后根据模型分类讨论链表头插入Ihead1data2Ildta3IheedJdatall;XdaU4InextIrwxtIMxtIdata=3#插入位置判断略#判断结果为遍历指针P指向data3,pre指向datald(date,p)itempre1=len(item)-l链表尾部插入*aau41I2皿I5I川卜:I:IIntIrwpIIWrtdata=6#插入位置判断略#判断结果为遍历指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 存储 结构 第十 数组 链表