线性表的顺序存储结构详解

线性表是一种逻辑结构,它在计算机中是如何存储的呢?有两种类型:顺序存储结构和链式存储结构,接下来一起看看顺序存储结构吧!!
1.定义:用一段地址连续的存储单元存储线性表中的元素
2.顺序存储结构利用一维数组实现,为什么呢?
因为线性表中的数据元素的类型相同,一维数组本来就是用来存储一组具有相同数据类型的元素的,因此线性表的顺序存储结构就利用一维数组实现!!!
3.描述顺序存储结构
#define MAXSIZE 50 //定义存储空间的初始分配量
typedef int ElemType //以后想定义int类型的变量就可以用ElemType代替
typedef struct
{
ElemType data[MAXSIZE];
int length;
}
说明:
(1)data表示数组的首地址,MAXSIZE表示数组的最大容量,
(2)length表示数组当前的长度(因为你给数组定义了最大容量,但这些容量不一定会全部用,所以应该知道当前数组的长度)
总结:顺序存储结构描述的三要素:data,MAXSIZE,length
4.区分:线性表长度和数组长度
线性表长度是线性表中所含元素的个数(动态变化)
数组长度是数组存放线性表的存储空间的长度(一般不变或者是用malloc函数动态分配)
数组长度>=线性表长度
5.线性表中元素的序号和数组下标之间的关系
线性表中的元素从1开始
数组下标从0开始
第ai个数据元素对应数组下标为i-1
6.顺序存储结构地址的计算方法
地址:内存单元的编号
不管是什么类型得的数据元素,它在内存中都占有一定的存储单元空间,由于类型不同,所占的存储单元大小也不用,假设占用s个存储单元,LOC()为取位置函数,对第i-1个元素取位置LOC(ai-1)然后再加上s得到LOC(ai)
由此可知如果已知存放线性表的数组起始地址就可以轻松的获取到线性表中的任意元素的地址
LOC(ai)=LOC(a1)+(n-1)*s
7.顺序存储结构的读取时间复杂度O(1),它具有随机存取的特点,当需要大量的查找工作时,采用顺序表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值