C++ 双向循环链表类模版实例详解
程序员文章站
2024-03-26 14:29:41
在上章c++图解单向链表类模板和iterator迭代器类模版详解我们学习了单链表,所以本章来学习双向循环链表我们在上个文章代码上进行修改, 由于双向循环链表在我们之前学的单链表上相对于较为复杂,所以需...
在上章c++图解单向链表类模板和iterator迭代器类模版详解
我们学习了单链表,所以本章来学习双向循环链表
我们在上个文章代码上进行修改, 由于双向循环链表在我们之前学的单链表上相对于较为复杂,所以需要注意的细节如下所示.
1.插入某个节点流程
如下图所示:
对应代码如下所示:
2.构造函数修改
在构造函数中,需要将头节点的next和prev都指向自己,从而实现一个闭环状态,代码如下所示:
3.重新实现append和prepend函数
因为是个双向循环链表,所以我们很轻松的就能获取到表头节点和表尾节点,代码如下所示:
4.修改迭代器类
由于现在是循环双链表,所以每个节点的next都是有值的,所以我们需要判断m_current当前指标是否等于头节点,如果等于则表示已经到链表末尾了.所以代码如下所示:
由于现在有prev成员,所以需要增加向前遍历函数:
5.linkedlist.h代码如下
6.测试运行
测试代码如下所示:
运行打印:
while循环打印30次,代码如下所示:
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
下一篇: C语言数据结构经典10大排序算法刨析