数据与结构

线性表

顺序线性表

顺序线性表:使用一段连续的地址存储单元放置线性表的数据元素。
举个例子:数组。

顺序线性表的优缺点:
优点:

  • 可以快速获取下标的数据元素,时间复杂度为O(1)
  • 逻辑关系是一对一的关系,连续存储单元足以储存,不需要增加额外的存储空间

缺点:

  • 插入和删除操作需要移动大量的元素,时间复杂度为O(n)
  • 线性表的存储空间大小难以确定,并且不好扩展
  • 造成存储空间碎片

链式线性表

链式线性表:线性表的数据元素可以存储在随意的存储单元,每一个节点不仅仅包括数据元素还有一个指向下一个节点的指针(基本的单链表)。

链式(单链表)和顺序线性表优缺点对比:
存储分配方式:

  • 顺序 -> 一段地址连续的存储空间
  • 链式 -> 任意地址存储空间

时间性能:

  • 查找
    顺序 -> O(1)
    链式 -> O(n)
  • 插入和删除
    顺序 -> O(n)
    链式 -> 寻找相应的节点,时间复杂度为O(n),然后,插入和删除为O(1)

空间性能:

  • 顺序 -> 需要提前分配存储空间,分配大了,浪费空间,分配小了,容易发生上溢
  • 链式 -> 不需要提前分配空间,只要有存储空间分配就行,数据元素个数只受可分配存储空间大小的限制