持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
线性表(英语:Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列
线性表的存储结构
- 顺序表
- 链表
- 单链表
- 动态单链表
- 静态单链表
- 双链表
- 循环链表
- 单循环链表
- 双信号链表
- 单链表
顺序表
线性表的顺序存储结构又叫顺序表,它是由一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素,在物理位置上也相邻。
由于数据元素之间的逻辑关系通过存储位置直接反映,顺序存储结构只需存放数据元素自身的信息,因此,存储密度大,空间利用率高是顺序存储结构的优点之一;另外,数据元素在表中的位置可以用一个简单、直观的解析式计算出来。由于它是一种随机存取的结构,因而存取元素的速度快。
但是,在这种存储结构下,线性表的存储空间除了需要事先分配之外,还需按最大需要的空间来考虑分配存储,这样做的结果是可能会导致存储空间开销的浪费;另外,后面将会看到,有关线性表的一些基本操作的时间效率也较低。
顺序表的插入
顺序表的删除
顺序表的查找
- 按值查找:一个一个的找,找到某个值位置
- 按下标查找:随机查找
效率
- 插入:看插入位置,元素向后移动,算平均复杂度 O(n)
- 删除:看删除位置,元素向前移动,算平均复杂度O(n)
- 查找:
- 按值查找:需要遍历,O(n)
- 按下标查找:随机,O(1)