线性顺序存储结构
来源:互联网 发布:朝勇投资有限公司 知乎 编辑:程序博客网 时间:2024/05/23 13:03
线性顺序存储结构:
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
线性表(a1,a2,…,an)的顺序存储如下:
物理上的存 储方式事实上就是在内存中找个初始地址,然后通过占位的形式,把一定的内存空间给占了,然后把相同数据类型的数据元素依次放在这块空地中。
总结下,顺序存储结构封装需要三个属性:
存储空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置。
线性表的最大存储容量:数组的长度MaxSize。
线性表的当前长度:length。
注意,数组的长度与线性表的当前长度需要区分一下:数组的长度是存放线性表的存储空间的总长度,一般初始化后不变。而线性表的当前长度是线性表中元素的个数,是会变化的。
接下来看线性表顺序存储的结构代码:
define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length; // 线性表当前长度
} SqList;
大家看到了,这里我们封装了一个结构,事实上就是对数组进行封装,增加了个当前长度的变量罢了。
线性表的定义充分考虑到很多军师级别领导的智商指数,所以决定从1开始回归正常思维。
假设ElemType占用的是c个存储单元(字节),那么线性表中第i+1个数据元素和第i个数据元素的存储位置的关系是(LOC表示获得存储位置的函数):LOC(ai+1) = LOC(ai) + c
所以对于第i个数据元素ai的存储位置可以由a1推算得出:LOC(ai) = LOC(a1) + (i-1)*c
结合下图来理解:
通过这个公式,我们可以随时计算出线性表中任意位置的地址,不管它是第一个还是最后一个,都是相同的时间。那么它的存储时间性能当然就为0(1),我们通常称为随机存储结构。
1 0
- 线性顺序存储结构
- 线性表 -- 顺序存储结构
- 线性表顺序存储结构
- 线性表-顺序存储结构
- 线性表顺序存储结构
- 线性表顺序存储结构
- 线性表--顺序存储结构
- 线性表顺序存储结构
- 线性表顺序存储结构
- 线性表顺序存储结构
- 线性表--顺序存储结构
- 线性表线性(顺序)存储结构
- 线性是线性,顺序是顺序,线性是逻辑结构,顺序是存储结构,
- 线性表的顺序结构存储
- C/C++线性顺序存储结构
- 线性表的顺序存储结构
- 线性表的顺序存储结构
- 顺序存储结构的线性表
- 学习版本控制工具 git的基本使用
- 坚持#第37天~Java开发大数据实时统计系统
- 关于Integer对象的一些小知识
- 数组中只出现一次的数字
- repo切换xml命令
- 线性顺序存储结构
- cordova打开pdf连接没反应:transferred with MIME type application/pdf: "http://**/**.pdf"
- Cookie和Session的区别
- 网络令牌的解释
- 周三项目4--顺序表应用
- 编译和解释的区别是什么?来看看
- 初学java,对3+1层架构的一些简单理解:MVC+S
- 构造函数的识别
- 你知道为什么Android手机总是越用越慢?