数据结构之线性表(三)

90 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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 的线性表。 删除运算的基本步骤是:

请看下一篇文章,喜欢的小伙伴,欢迎点赞、评论、纠正~