【数据结构】数组与广义表-数据的顺序存储(图解)

GitHub同步更新(已分类)Data_Structure_And_Algorithm-Review

公众号:URLeisure 的复习仓库
公众号二维码见文末

以下是本篇文章正文内容,下面案例可供参考。


数组的存储

  • 数组是由相同类型的数据元素构成的有限集合。

  • 一维数组可以看做一个线性表。

  • 二维数组也可以看作一个线性表 X = (X0,X1,X2,…,Xn-1),只不过每一个数据元素 Xi 也是一个线性表。

  • 同样,二维数组也可以看作一个线性表 Y = (Y0,Y1,Y2,…,Ym-1),只不过每一个数据元素 Yi 也是一个线性表。

一维数组:
一维数组
二维数组
二维数组X
二维数组Y

  • 数组一般采用顺序存储结构,因为存储单元是一维的,而数组可以是多维的。

  • 利用一组连续的存储单元来存储多维数组:

  • 以二维数组为例,可以按行序存储,即先存第一行,再存第二行……也可以按列序存储,先存第一列,再存第二列……

  • c 语言,java 都是按行序存储的。

寻找存储位置

寻找 aij 的存储位置。

按行存储

行序

  • 如果每个元素占L字节,那么共需要 (i×n + j ) × L 字节,只要用基地址加上这些字节就可以得到 aij 的存储地址。

  • 由图可计算出,LOC(aij) = LOC(a00) + (i×n + j ) × L。

按列存储

列序

  • 如果每个元素占L字节,那么共需要 (j×m + i ) × L 字节,只要用基地址加上这些字节就可以得到 aij 的存储地址。

  • 由图可计算出,LOC(aij) = LOC(a00) + (j×m + i ) × L。


总结

  • 计算时,注意下标的起始数字,本篇起始数字为 0。

关注公众号,感受不同的阅读体验

请添加图片描述

下期预告: 模式匹配 KMP 算法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扑腾的江鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值