c/c++语言开发共享C++ 双向循环链表类模版实例详解

在上章c++图解单向链表类模板和iterator迭代器类模版详解我们学习了单链表,所以本章来学习双向循环链表我们在上个文章代码上进行修改, 由于双向循环链表在我们之前学的单链表上相对于较为复杂,所以需

在上章c++图解单向链表类模板和iterator迭代器类模版详解

我们学习了单链表,所以本章来学习双向循环链表

我们在上个文章代码上进行修改, 由于双向循环链表在我们之前学的单链表上相对于较为复杂,所以需要注意的细节如下所示.

1.插入某个节点流程

如下图所示:

C++ 双向循环链表类模版实例详解

对应代码如下所示:

2.构造函数修改

在构造函数中,需要将头节点的next和prev都指向自己,从而实现一个闭环状态,代码如下所示:

3.重新实现append和prepend函数

因为是个双向循环链表,所以我们很轻松的就能获取到表头节点和表尾节点,代码如下所示:

4.修改迭代器类

由于现在是循环双链表,所以每个节点的next都是有值的,所以我们需要判断m_current当前指标是否等于头节点,如果等于则表示已经到链表末尾了.所以代码如下所示:

由于现在有prev成员,所以需要增加向前遍历函数:

5.linkedlist.h代码如下

6.测试运行

测试代码如下所示:

运行打印:

C++ 双向循环链表类模版实例详解

while循环打印30次,代码如下所示:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注<计算机技术网(www.ctvol.com)!!>的更多内容!  

需要了解更多c/c++开发分享C++ 双向循环链表类模版实例详解,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1057846.html

(0)
上一篇 2022年3月2日
下一篇 2022年3月2日

精彩推荐