(
课件网) 第二章内容复习 PART 1 数组 一 数组的概念 1.定义:数组是由相同类型的变量构成的一个序列。 2.特性: 数组的数据类型相同 通过数组名和下标对数组元素的值进行访问 存储空间固定不变 3.数据结构 逻辑结构: 物理结构: 一维数组/二维数组 顺序存储 一 判断题 1.一维数组适合用来表示具有线性特征的数据序列 2.二维数组表示的数据在内存中以二维的形式存储 3.同一个数组中,每个数组元素的数据类型一定是相同的 4.数组的逻辑结构是顺序存储 5.数组适用于数据规模可预估且在处理过程中数据规模保持稳定的问题 √ × √ × √ 二 数组的创建 创建方式 一维数组 二维数组 直接创建 间接创建 列表生成式 a=[0,0,0] a=[0]*3 a=[0 for i in range(3)] 0 0 0 0 0 0 0 0 0 a b b=[[0,0],[0,0],[0,0]] b=[[0]*2 for i in range(3)] b=[[0]*2]*3或b=[[0,0]]*3 b=[[0 for i in range(2)]for j in range(3)] 二 练习 1.对于数组:a=[ i*i for i in range(10) if i%2!=0 ] 则数组元素a[2]的值为 ( ) A.9 B.25 C.49 D.16 B 二 练习 2.有如下程序段: a=[[0]*3]*4 b=a b[1][2]=3 print(a[0][2],b[3][2]) 程序执行完毕后输出的值为( ) A.0 0 B.3 0 C.0 3 D.3 3 D 二 练习 3.有如下Python程序段: a=[[0]*3 for i in range(4)] for i in range(len(a)): for j in range(len(a[0])): a[i][j]=i*len(a[0])+j+1 则程序执行后,a[2][2]的值为( ) A.5 B.6 C.8 D.9 D 二 练习 4.有如下Python程序段: n=4 a=[[j*n+i+1 for i in range(n)] for j in range(n)] for i in range(1,n,2): for j in range(n//2): a[i][j]//=2 则程序执行后,a[1][1]和a[3][1]的值分别为( ) A.3和7 B.3和6 C.2和6 D.2和7 A 三 数组的访问 1.一维数组 物理地址计算: 【例】某数组第一个元素的存储位置在第900字节处,每个元素所占空间大小为2字节,则第五个元素的位置为_____ 908 LOC(i)=LOC(0)+s*i s代表每个元素存储空间 LOC(0)代表第一个元素存储的位置 三 数组的访问 2.二维数组 物理地址计算: 【例】二维数组a中,每个元素所占空间大小为2个字节,行下标i从0到4,列下标j从0到6,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素a[2][4]的起始地址为_____ SA+36 如果用列优先存储呢? SA+44 行优先: LOC(a[i][j])=LOC(a[0][0])+(i*C+j)*s 列优先: LOC(a[i][j])=LOC(a[0][0])+(j*R+i)*s 0 1 … C-1 1 … … … a[i][j] … R-1 … R为最大行数 s代表每个元素存储空间 C为最大列数 四 数组元素的插入 1.定义:将该位置及其后的所有数据向后移动一个位置,最后在修改该位置上的数据为新数据。 2.代码表示: for i in range(n-1,p,-1): a[i]=a[i-1] a[p]=x n+=1 #n为列表长度 #p为元素插入位置 a p n-1 x=6 相关函数:list.insert(p,x) 五 数组元素的删除 1.定义:当需要在数组中某个位置中删除一个元素时,只需将所有元素依次前移一位,然后将所有数组长度减一即可。 。 2.代码表示: for i in range(p,n-1): a[i]=a[i+1] n-=1 相关函数: list.pop([p=-1]) list.remove() del list del list[p] del list[:] #n为列表长度 #p为元素插入位置 a p n-1 PART 2 链表 一 链表的概念 1.定义:链表指的是将需要处理的数据对象以节点的形式,通过指针串联在一起的一种数据结构。 2.特性: 同一链表中每个结点的结构均相同 每个链表必定有一个头指针,以实现对链表的引用和边界处理 链表占用的空间不固定 3.数据结构 逻辑结构: 物理结构: 线性表 非顺序存储 一 判断题 1.链表的核心是使用指针链接节点,是一种非常灵活的数据组织方式 2.链表的存储空间利用率比数组高 3.链表的删除、插 ... ...