双向链表
双向链表属于链表的一种,也叫双链表双向即是说它的链接方向是双向的,它由若干个节点组成,每个节点都包含下一个节点和上一个节点的指针,所以从双向链表的任意节点开始,都能很方便访问他的前驱结点和后继节点。
特点:
1 创建时无需指定长度。
2 比起单向,双向需要多一个指向前驱节点的指针,存储空间相对要大一点。
3 插入跟删除都需要维护next跟prev两个指针
双链表创建
空链表:
插入链尾:
数据:the monster is coming
迭代器:
迭代器的 current 指针初始指向head
执行两次 next 操作, current 指针指向索引为2的节点
设置 current 指针指向索引为3的节点
链表操作
插入:
在索引1后面插入“big”节点。先将 current 指针指向索引为1的节点,创建一个"big"新节点
入到 current 指向位置
删除:
将“big”节点删除,移动当前指针 current 到“but”节点位置
执行删除操作,断掉“big”节点与前后两节点的 next 和 prev 指针,然后将“the”节点与“monster”节点关联起来
双向循环链表
前面的双向链表的 head 节点和链尾没有连接关系,所以如果要访问最后一个节点的话需要从头开始遍历,直到最后一个节点。在双向链表基础上改进一下,把 header 节点的 prev 指针指向最后一个节点,而最后一个节点的 next 指针指向 header 节点,于是便构成双向循环链表。作者:超人汪小建
链接:https://juejin.cn/post/6844903648154271757
标签:current,指向,链表,双向,节点,指针 From: https://www.cnblogs.com/fanqianlang/p/17732151.html