【数据结构】考点九:二维数组存储地址计算

【考试临时抱佛脚】系列文章针对于<学习时间少>、<时间紧迫>、<想短时间提升成绩>的考生打造。无论你是<自考>、<专升本>还是<考研>这个专栏都适合你,Let’s go!

一、方法

解题步骤:

不用死记硬背,大不了全部画出来,文章最后面有图解简单计算方法,无脑解出此类题目。

二、考察形式1

1、问题

将20个数据元素的线性表存储在数组中,若第9个元素的存储地址是1000,第11个元素的存储地址是1040,则最后一个元素的存储地址是( )
A. 1200
B. 1210
C. 1215
D. 1220

2、解析&回答

分析:
**方法1:**用笨方法将其画出来,计算格子多少和间隔多少
【注意:元素的存储地址为:起始位置的地址】
在这里插入图片描述
方法2:用公式计算
基地址 + (最后元素下标 - 起始元素下标)* 元素大小 = 元素存储地址
结果为:1000 + (20 - 9) * 20 =1220
答案:D

三、考察形式2

1、问题

设线性表采用顺序存储方式保存,每个元素占8个存储单元,第1个元素的存储地址为200,则第5个元素占用的最后一个存储单元的地址是( )
A. 239
B. 240
C. 247
D. 248

2、解析&回答

在这里插入图片描述
答案:A

四、考察形式3

1、问题

将100个数据元素保存在顺序表中,若第一个元素的存储地址是1000,第二个元素的存储地址是1004,则该顺序表最后一个元素的存储地址是()

2、解析&回答

在这里插入图片描述
用公式计算: 【基地址 + (最后元素下标 - 起始元素下标)* 元素大小 = 元素存储地址】
答案:1396

五、考察形式4

1、问题

将10个数据元素保存在顺序栈S中,若栈顶元素的存储地址是100,栈中每个元素占4个存储单元,进栈按S.top =S.top+1 修改栈顶,则栈底元素的存储地址是(B)
A. 60
B. 64
C. 136
D. 140

2、解析&回答

在这里插入图片描述

六、考察形式5

1、问题

设二维数组M有3行4列,按行优先的方式存储,每个元素占6个存储单元,第1个元素的存储地址为100,则M[2] [2] 的存储地址为(C)
A. 135
B. 153
C. 160
D. 165

2、解析&回答

在这里插入图片描述
a00和a22之间间隔10个格,那么M[2] [2] = 100 + 10*6 = 160

七、绝杀招之无脑计算法

在这里插入图片描述

1、列优先时:
第一步:元素A的列数 乘以 二维数组的行数
第二步:元素A的行数,加上第一步的结果
第三步:第一、二步之和 乘以 元素大小
第四步:最后加上首元素的偏移量,得出的结果即元素A的存储地址。

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值