- 单链表
- 理论上,单链表为每个节点均有一个va储存值l和next指针构成,用数组模拟采用两个数组实现,一个数组储存val,另一个储存对应的下一个数的下标,即next。
- 单链表没办法查看自身的前一个点的位置,想找到前一个点只能遍历。
- 邻接表
- 主要作用存储图和树
- 由多个单链表构成(属实也没理解,说以后会讲) 基本操作的简单实现:
-
双链表
-
主要解决优化问题
-
理论上,双链表为每个节点均有一个val值和pre,next两个指针构成,用数组模拟采用三个数组实现,一个数组储存val,一个储存左值的下标,即pre,一个储存右值的下标,即next。(此处不设头尾节点,0节点表示头节点)
-
双链表相较于单链表:
- 优点:可以前后遍历,删除操作更容易实现(无需从头遍历找到需要删除点的前一个位置)。
- 缺点:需要更多的空间,无论删除还是添加都需要更多操作。
基本操作的实现: