数据结构之数组的存储

注意:本文所有数组的初始下标均为0,使用时要结合具体数组内容进行修改,灵活运用。

一、一维数组

1.一维数组本质是以顺序存储方式存储的线性表。一维数组的逻辑结构是线性结构,存储结构是顺序结构。

2.假设一个一维数组中每个元素占L个存储单元,则元素a[i]的存储位置为:

LOC[i]=LOC[0]+i*L

二、二维数组

1.二维数组有两种存储方式:以行序为主序或以列序为主序。

2.对于一个有m行n列的二维数组A([0-m-1,0-n-1]),求其中的任一元素a[i,j]的存储位置公式为:

(1) LOC[i,j]=LOC[0,0]+(n*i+j) L(以行序为主序的存储方式)

(2) LOC[i,j]=LOC[0,0]+(m*j+i) L(以列序为主序的存储方式)

其中,LOC[0,0]表示的是a[0,0]存储的位置,也称基地址;行序时是以列n*行i,列序时是以行m*列j;L为每个数据所占用的存储单元。

例:假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )

这里是以行序为主序存储方式,故用公式(1),代入如下:

LOC[5,5]=LOC[1,1]+(100*(5-1)+(5-1))*2=10+808=818

3.二维数组之所以有行优先顺序和列优先顺序两种存储方式是因为数组的元素处在行和列两个关系中。

三、三维数组

假设一个三维数组A[r,m,n]中每个元素占L个存储单元,则元素a[i,j,k]的存储位置为:

LOC[i,j,k]=LOC[0,0,0]+(i*m*n+j*n+k)L

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值