本文已参与「新人创作礼」活动,一起开启掘金创作之路。
2.2 线性表的顺序存储
2.2.1 线性表顺序存储的类型定义
是指所有存储结点存放在一个连续的存储区里。
数据元素在线性表中的邻接关系决定它们在存储空间中的存储位置, 即逻辑结构中相邻的结点其存储位置也相邻。
用顺序存储实现的线性表称为顺序表。一般使用数组来表示顺序表。
2.2.2 顺序存储的特点
- 存储空间必须是连续的,预分配的。
- 逻辑顺序与物理顺序一致,用物理的相邻来表示逻辑上的线性关系。
- 任意相邻元素之间无空闲空间,且相距为小写的L
- 已知基地址,可以计算出任意元素的存储地址。
Loc(ai) = base + (i+1)*l
在高级语言中,数组是采用 顺序存储 的。
2.2.3 线性表的基本运算在顺序表上的实现
(1)顺序表的插入运算 InsertSeqlist (SeqList L,DataType x,int i)
在顺序表第 i 个元素之前插入一个元素x。使长度为为 n 的线性表,变为长度为 n+1 的线性表。
插入算法的基本步骤是:
首先将结点 ai ~ an 依次向后移动一个元素的位置, 这样空出第 i 个数据元素的位置;
然后将 x 置入该空位, 最后表长加 1。
如果内存满了,无法向后移动一个位置,则需要增量+10,然后再重复上述步骤。
(2)顺序表的删除运算 DeleteSeqlist(SeqList L,int i) 将线性表的第 i 个数据元素删去,使长度为 n 的线性表,变为长度为 n-1 的线性表。 删除运算的基本步骤是:
请看下一篇文章,喜欢的小伙伴,欢迎点赞、评论、纠正~