第五章 数组与链表

作者: Qiuo 分类: 数据结构 发布时间: 2020-04-02 18:49
数组与链表非常重要的结构化数据类型,也是典型的线性表

按照内存存储方式分为两种

数组类型就是典型的静态数据结构
优点
设计简单,读取与修改表中任意一个元素的时间都是固定的
缺点
删除和加入数据时,都需要移动大量的数据.

链表类型就是典型的动态数据结构
优点
数据的插入和删除都非常方便,不需要移动大量的数据.
动态数据结构的内存分配是在程序执行时才进行的,
所以不需要事先声明,能充分节省内存.
缺点
设计数据结构时比较麻烦
查找数据无法像静态数据一样随机读取,必须按顺序找到该数据才行.

矩阵

矩阵相加算法

[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

单向链表

标签云