(数据结构讲义)第5章多维数组和广义表.doc

第五章 多维数组和广义表 5.1 数组的定义 一、数组的定义 数组(Arrays)是由一组类型相同的数据元素构造而成的。它的每个元素由一个值和一组下标确定。 每个元素aij均属于两个向量:第i行的行向量和第j列的列向量。最多可以有两个直接前驱和两个直接后继。 二、 数组的顺序存储结构 数组的顺序存储结构指的是用一组连续的存储单元依次存放数组元素。   行优先顺序:将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。   列优先顺序:将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后。   二维数组Amn按“行优先顺序”存储在内存中,假设每个元素占d个存储单元,则aij的地址计算函数为:LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d   对应C语言的二维数组:DataType A[m][n]; 数组A[m][n]的两个下标的下界均为0,上界分别为m-1、n-1,每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由下列公式确定。     loc[i,j]=loc[0,0]+( n * i + j ) * k   其中,loc[0,0]是A[0][0]的存储位置,它是该二维数组的起始地址。loc[i,j]是A[i][j]的存储位置。这个式子确定了C语言的二维数组元素的位置和下标的关系。压缩存储:所谓特殊矩阵(Spe

文档评论(0)

1亿VIP精品文档

相关文档