线性存储结构第十章数组、链表.docx
《线性存储结构第十章数组、链表.docx》由会员分享,可在线阅读,更多相关《线性存储结构第十章数组、链表.docx(6页珍藏版)》请在第一文库网上搜索。
1、*线性存储结构*第十章数组、链表一、数组L数组的特性数组元素的数据类型相同(2)通过数组名和索引对数组元素进行访问数组(主要指静态数组)在内存中的存储空间连续且固定不变(4)Python中没有数组这种结构,教材中使用列表来模拟数组的操作二维数组在存储时也采用顺序存储,Python中对二维数组采用的是任优先的存储方式。2 .创建数组一维数组si = 0*9#间接创建si = 1,2,3,4# 直接仓 IJ建二维数组s2 = 0 for i in range(4)for i in range(4)#间接创建s2 = 1,2,3,4,5,6,7,8,9,10,11,12#直接创建3 .浅拷贝Pyth
2、on中创建二维数组不能使用如同一维数组的创建方式,如s2=0*4*40这样在修改 某行元素时会导致4行中同一列的数据会同时被修改。这与Python在创建变量时实际是创 建了引用有关。以上这种情况被称之为浅拷贝。4 .列表生成式格式: 元素表达式for循环语句if条件约束dl = i*i for i in range(10)dl= 0, 1, 4, 9, 16, 25, 36, 49, 64, 81d2 =i*i for i in range(10) if i%2=0d2= 0, 4, 16, 36, 64d3 = m+n for m in ABC for n in XYZd3= AX, AY,
3、 AZ, BX, BY, BZ, CX, CY, CZd4 = s.lower() for s in ABC,EDG,LSPd4= abc, edg, lsp5 .在数组中插入数据/删除数据#在数组中插入数据(WhiIe循环为例)a = 1,3,5,7,9,11,13,15,17,19,0num = 6#待插入数据i = 0while ilen(a): #查找变量插入位置 if ai i:#插入位置后的元素后移aj = aj-l J=J-Iai = num#数据插入print(a)#在数组中删除数据(for循环为例)a = 1,3,5,7,9,11,13,15,17,19num = 9#需要删
4、除的元素i = 0for i in range(len(a):if ai = num: breakfor j in range(i+ljlen(a): aj-l = ajai = 0#末尾清空print(a)【注:】数组由于自身特性,在执行插入和删除过程中都需要移动元素。而向前和向后移动 元素时,需要防止元素相互覆盖,这一点需要特别小心。二、链表1 .链表的特性同一链表中每个节点的结构均相同,包括值域的数据类型以及指针域的数量和功能(2)每个链表必定有一个头指针,实现对链表的引用和边界处理。链表访问只能从头指针开 始,通过指针链接向后依次访问。链表占用的存储空间不连续且不固定。链表的存储空间由
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 存储 结构 第十 数组 链表
