1.数组的概念
数组:是由类型相同的数据元素构成的有限序列,每个数据元素称为一个数组元素(简称元素)。
数据元素可以是整数、实数等简单类型,也可以是数组等构造类型。
2.数组的存储结构
数组元素保存在地址连续的内存中,它们紧密相邻。 计算机的存储结构是一维的,而数组一般是多维的,怎样存放?
二维数组顺序存储方式:以行序为主序、以列序为主序
以行序为主序aij存储地址推导:
aij之前共有((i-1)*n+j-1)个元素
二维数组中任意一个数组元素aij的存储地址(以行序为主序)为:
二维数组以列序为主序:
aij之前共有((j-i)*m+i-1)个元素
二维数组中任意一个数组元素aij的存储地址(以列序为主序)为:
3.矩阵的压缩存储
(1)相同的数据只存储一次;
(2)零元素不占存储空间,数据存放到一维数组中。
4.特殊矩阵的存储
(1)对称矩阵
在一个n阶方阵A中,若元素满足下述性质,则称A为对称矩阵。aij=aji ( 1≦i, j≦n)
n阶对称方阵中包含n2个数据元素,只存储下三角阵(包括主对角线)中的n(n+1)/2个数组元素。
Va[k]与aij的对应关系为:
下标从1开始
下标从0开始
(2)三角矩阵
上三角矩阵
一个n阶方阵,其主对角线的左下方元素为0或常数,即当i>j时,aij=0或c。
压缩存储
下三角矩阵
一个n阶方阵,其主对角线的右上方元素为0或常数,即当i<j时,aij=0或c。
压缩存储
5.稀疏矩阵的存储
稀疏矩阵:设矩阵Amn中有s个非零元素,若s远远小于矩阵元素的总数(即s<<m×n),则称A为稀疏矩阵。
三元组法:(i,j,v)(行下标,列下标,值)