数据结构复习之线性表(顺序表)

187 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

线性表(英语:Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列

线性表的存储结构

  • 顺序表
  • 链表
    • 单链表
      • 动态单链表
      • 静态单链表
    • 双链表
    • 循环链表
      • 单循环链表
      • 双信号链表

顺序表

线性表的顺序存储结构又叫顺序表,它是由一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素,在物理位置上也相邻。

由于数据元素之间的逻辑关系通过存储位置直接反映,顺序存储结构只需存放数据元素自身的信息,因此,存储密度大,空间利用率高是顺序存储结构的优点之一;另外,数据元素在表中的位置可以用一个简单、直观的解析式计算出来。由于它是一种随机存取的结构,因而存取元素的速度快。

但是,在这种存储结构下,线性表的存储空间除了需要事先分配之外,还需按最大需要的空间来考虑分配存储,这样做的结果是可能会导致存储空间开销的浪费;另外,后面将会看到,有关线性表的一些基本操作的时间效率也较低。

image.png

顺序表的插入

image.png

顺序表的删除

image.png

顺序表的查找

  • 按值查找:一个一个的找,找到某个值位置
  • 按下标查找:随机查找

效率

  • 插入:看插入位置,元素向后移动,算平均复杂度 O(n)
  • 删除:看删除位置,元素向前移动,算平均复杂度O(n)
  • 查找:
    • 按值查找:需要遍历,O(n)
    • 按下标查找:随机,O(1)