数组 按行,列存储

二维数组

二维数组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) 按行优先顺序存储的二维数组Amn地址计算公式
LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d

其中:
LOC(a11)是开始结点的存放地址(即基地址)
d为每个元素所占的存储单元数 由地址计算公式可得,数组中任一元素可通过地址公式在相同时间内存取。即顺序存储的数组是随机存取结构。

 

(2) 按列优先顺序存储的二维数组Amn地址计算公式
LOC(aij)=LOC(a11)+[(j-1)×m+i-1]×d

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值