day07 链表

62 阅读1分钟
  1. 单链表
    1. 理论上,单链表为每个节点均有一个va储存值l和next指针构成,用数组模拟采用两个数组实现,一个数组储存val,另一个储存对应的下一个数的下标,即next。
    2. 单链表没办法查看自身的前一个点的位置,想找到前一个点只能遍历。
    3. 邻接表
      1. 主要作用存储图和树
      2. 由多个单链表构成(属实也没理解,说以后会讲) 基本操作的简单实现:

code.png

  1. 双链表

  2. 主要解决优化问题

  3. 理论上,双链表为每个节点均有一个val值和pre,next两个指针构成,用数组模拟采用三个数组实现,一个数组储存val,一个储存左值的下标,即pre,一个储存右值的下标,即next。(此处不设头尾节点,0节点表示头节点)

  4. 双链表相较于单链表:

  • 优点:可以前后遍历,删除操作更容易实现(无需从头遍历找到需要删除点的前一个位置)。
  • 缺点:需要更多的空间,无论删除还是添加都需要更多操作。

基本操作的实现:

code.png