# 数组和广义表
# 一、数组
数组是一组偶对(下标值,数据元素值)的集合。在数组中,对于一组有意义的下标,都存在一个与其对应的值。
存储单元是一维的结构,而数组可以是一维数组或多维数组,所以,在将多维数组存储在一维的存储单元中时,数组中的数据元素之间就会有次序问题。如二维数组在存储时一种是以行为主序的存储方式,另一种是以列为主序的存储方式。
# 1.行优先存储
将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面,对二维数组,按行优先顺序存储的线性序列为:
二维数组中任一元素
的首地址是:
# 2.列优先顺序
- 将数组元素按列向量排序,第j+1个列向量紧接在第j个列向量之后,对于二维数组,按列优先顺序存储的线性序列为:
# 二、矩阵压缩存储
特殊矩阵
- 特殊矩阵是值相同的元素或者零元素在矩阵中分布有一定规律,则我们称此类矩阵为特殊矩阵
- 常用的特殊矩阵:对称矩阵、三角矩阵、对角矩阵、稀疏矩阵等
压缩矩阵
某些非零元素呈某种规律分布或者矩阵中有大量的零元素,若仍然用常规方法存储,可能存储大量重复元素,容易造成大量空间浪费,所以我们对此类矩阵进行压缩存储
- 多个相同的非零元素只分配一个存储空间
- 零元素不分配空间
# 1.对称矩阵
若一个n阶方阵
中的元素满足性质: ,则称A为对称矩阵 对称矩阵中的元素关于主对角线对称,因此,让每一对对称元素
和 分配一个存储空间,则可以把 个元素压缩到 个存储空间