数组
定义
一维数组是有限个相同类型的数据元素构成的序列,逻辑关系是相邻关系
推广:一个二维数组可以看作相同类型的一维数组的一维数组;n维数组可以看作以n-1维数组作为元素的线性表
性质
数组中的数据元素数目固定
数组中的数据元素具有相同的数据类型
数组中的每一个元素都和一组唯一的下标对应
数组是一种随机存储结构,可以随机存取数组中的任意数据元素
存储结构
一维数组
二维数组
按行优先存放
按列优先存放
无论是几维数组,无论是按行还是按列存储,都可以在O(1)的时间内算出指定下标的元素地址,体现出随机存储特性
特殊矩阵的压缩存储
对称矩阵
一个n阶方阵按照其主对角线对称,可以使对称的两个元素共享一个存储空间
上、下三角矩阵
上三角矩阵是指下三角全为常数c的方阵,同理可得下三角矩阵
对于上三角矩阵:存储主对角线和上三角的元素,另外再用一个元素存储常数c,并将压缩结果存放在一维数组中
对角矩阵
n阶方阵的所有非零元素都集中在以主对角线为中心的带状区域中
将特殊的矩阵压缩到一个存储空间中,再按照公式做映射即可实现随机存取
稀疏矩阵
定义:当一个阶数较大的矩阵中非零元素远远小于矩阵元素的总个数时,称该矩阵为稀疏矩阵
三元组表示:由于非零元素的随机性,所以当要压缩该矩阵时需要存储元素的行下标、列下标和元素值,构成一个三元组。此时不具有随机存取的性质