链表

#单链表

  • 单链表代码实现
  • 作为你相当熟悉的线性表结构,不必多言
  • 删除和插入的效率提升,但代价是丧失了随机存储能力,只能从头顺序访问
  • 插入删除时间复杂度O(n)
  • #双链表

  • 双链表代码实现
  • 与单链表的区别就是结构中多了一个指向上一个节点的prior指针
  • 可以从后往前遍历链表了
  • 在已知目标结点的情况下,插入和删除的时间复杂度变为O(1)
  • 原因很简单,毕竟知道了前驱节点,就不需要老老实实遍历节点了。
  • #循环链表

  • 与普通链表的区别就是末尾指针指向的是头结点
  • 形成一个环
  • 故在任何位置上的插入和删除操作都是等价的,无需判断是否达到表尾
  • #循环双链表

  • 在循环链表的基础上,增添了一个前驱指针
  • #静态链表

  • 分配一块连续空间用于
  • 结构上两个部分,一个数据,一个存地址的变量
  • 地址变量存入下一个地址
  • 额,总之就是静态,就是一块空间模拟链表