二维数组
二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。
数组的顺序存储方式
由于计算机内存是一维的,多维数组的元素应排成线性序列后存人存储器。
数组一般不做插入和删除操作,即结构中元素个数和元素间关系不变化。一般采用顺序存储方法表示数组。
(1)
将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。
例: 二维数组Amn的按行优先存储的线性序列为:
a11,a12,…,a1n,a21,a22,…,a2n,……,am1,am2,…,amn
注意:
PASCAL和C语言中,数组按行优先顺序存储。
行优先顺序推广到多维数组,可规定为先排最右的下标。
(2)
将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。
例: 二维数组Amn的按列优先存储的线性序列为:
a11,a21,…,am1,a12,a22,…,am2,……,a1n,a2n,…,amn
注意:
FORTRAN语言中,数组按列优先顺序存储。
列优先顺序推广到多维数组,可规定为先排最左的下标。
数组元素的地址计算公式
(1)
LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d
其中:
LOC(a11)是开始结点的存放地址(即基地址)
d为每个元素所占的存储单元数
(2)
LOC(aij)=LOC(a11)+[(j-1)×m+i-1]×d