推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各类堆、各类队列、各类列表、各类树、各类图、各类排序等等几十篇的样子。mysql
双向链表属于链表的一种,也叫双链表双向便是说它的连接方向是双向的,它由若干个节点组成,每一个节点都包含下一个节点和上一个节点的指针,因此从双向链表的任意节点开始,都能很方便访问他的前驱结点和后继节点。算法
建立一个空链表,sql
将the monster is coming
这些单词按顺序分别插入尾部,建立“the”节点,网络
链接起来,数据结构
建立“monster”节点,并发
再链接起来,机器学习
以此类推,将剩下的节点所有建立并链接起来。数据结构和算法
迭代器的 current 指针初始指向head,学习
执行两次 next 操做, current 指针指向索引为2的节点,.net
此时的节点值为,
设置 current 指针指向索引为3的节点,
在索引1后面插入“big”节点。先将 current 指针指向索引为1的节点,建立一个"big"新节点,
插入到 current 指向位置,
将“big”节点删除,移动当前指针 current 到“but”节点位置,
执行删除操做,断掉“big”节点与先后两节点的 next 和 prev 指针,而后将“the”节点与“monster”节点关联起来,
前面的双向链表的 head 节点和链尾没有链接关系,因此若是要访问最后一个节点的话须要从头开始遍历,直到最后一个节点。在双向链表基础上改进一下,把 header 节点的 prev 指针指向最后一个节点,而最后一个节点的 next 指针指向 header 节点,因而便构成双向循环链表。
-------------推荐阅读------------
个人开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)
跟我交流,向我提问:
欢迎关注: