# 数组和广义表

# 一、数组

数组是一组偶对(下标值,数据元素值)的集合。在数组中,对于一组有意义的下标,都存在一个与其对应的值。

存储单元是一维的结构,而数组可以是一维数组或多维数组,所以,在将多维数组存储在一维的存储单元中时,数组中的数据元素之间就会有次序问题。如二维数组在存储时一种是以行为主序的存储方式,另一种是以列为主序的存储方式。

# 1.行优先存储

  • 将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面,对二维数组,按行优先顺序存储的线性序列为:

  • 二维数组中任一元素的首地址是:

# 2.列优先顺序

  • 将数组元素按列向量排序,第j+1个列向量紧接在第j个列向量之后,对于二维数组,按列优先顺序存储的线性序列为:

# 二、矩阵压缩存储

特殊矩阵

  • 特殊矩阵是值相同的元素或者零元素在矩阵中分布有一定规律,则我们称此类矩阵为特殊矩阵
  • 常用的特殊矩阵:对称矩阵、三角矩阵、对角矩阵、稀疏矩阵等

压缩矩阵

某些非零元素呈某种规律分布或者矩阵中有大量的零元素,若仍然用常规方法存储,可能存储大量重复元素,容易造成大量空间浪费,所以我们对此类矩阵进行压缩存储

  • 多个相同的非零元素只分配一个存储空间
  • 零元素不分配空间

# 1.对称矩阵

  • 若一个n阶方阵中的元素满足性质:,则称A为对称矩阵

  • 对称矩阵中的元素关于主对角线对称,因此,让每一对对称元素分配一个存储空间,则可以把个元素压缩到个存储空间

# 2.三角矩阵