第五章 数组与链表
数组与链表都是非常重要的结构化数据类型,也是典型的线性表
按照内存存储方式分为两种
数组类型就是典型的静态数据结构 优点 设计简单,读取与修改表中任意一个元素的时间都是固定的 缺点 删除和加入数据时,都需要移动大量的数据. 链表类型就是典型的动态数据结构 优点 数据的插入和删除都非常方便,不需要移动大量的数据. 动态数据结构的内存分配是在程序执行时才进行的, 所以不需要事先声明,能充分节省内存. 缺点 设计数据结构时比较麻烦 查找数据无法像静态数据一样随机读取,必须按顺序找到该数据才行.
矩阵
矩阵相加算法
[1 3 5] [9 8 7] [10 11 12] [7 9 11] + [6 5 4] = [13 14 15] [13 15 7] [3 2 1] [16 17 18] A矩阵 B矩阵 C矩阵
A = [[1, 3, 5], [7, 9, 11], [13, 15, 17]] B = [[9, 8, 7], [6, 5, 4], [3, 2, 1]] N = 3 C = [[None] * N for row in range(N)] print("[矩阵A与矩阵B相加的结果为]") for i in range(3): for j in range(3): C[i][j] = A[i][j] + B[i][j] print("%d" % C[i][j], end="\t") print() # 运行结果 # [矩阵A与矩阵B相加的结果为] # 10 11 12 # 13 14 15 # 16 17 18
单向链表