数据结构之双向循环链表(C++实现)

本文介绍了如何使用C++实现双向循环链表,包括数据结构定义、构造函数、析构函数以及插入操作。作者强调了先实现基础功能、逐步添加复杂性的编程思路,并提到链表在操作系统中的应用。此外,鼓励读者尝试自己实现并提供了交流学习的平台。
摘要由CSDN通过智能技术生成

下午上机的时候大概地实现了链表的基本功能。写的时候也不是光是脑袋想,

就在word里面画了个粗糙的图形,边看边写。刚刚开始的时候功能可以不要

太多。把最基本的功能先实现,也就是数据定义,default constructor和destructor的功能

。然后测试,再增加功能,这样后来写的时候出错的时候就会很明朗,至少不会是前面写的

function出错了。g++和vc下调试通过。main里面的测试只是其中的一部分,写的时候删了许多。

双向循环链表。首先它是一个环状的,只是不是那么圆,就像一个蛇咬住了自己的尾巴,那个发现苯环

的人就是晚上做了个梦,蛇咬住了自己的尾巴,然后他发现了苯环的结构。灵感源自生活,所以我们程序员

虽然总是对着电脑,但是请不要忘了,离开了电脑我们还有很广阔的世界,说多了哈,刚刚打了下酱油。

接着上面的。然后它又是双向的,所以它应该有2个指针,一个就是pre(前驱),一个就是next(后继)。

就像右边这个图里面画的那样,画的不咋样,这个还是到寝室后重新画的。

清楚了它的结构,实现起来就比较简单了,某些功能比单链表实现起来更简单点,毕竟它是双向的,所以很灵活,链表的用途还是很广泛的,os里面的各种作业调度算法的实现都是和链表息息相关。所以它的重要性可见一斑了。

如果你自己感兴趣的话也可以自己去实现一下,C/C++都行。

链表的学习到这里就结束了,对数据结构,linux C/C++有着浓厚兴趣的同学可以加群91926913一起交流下。

最后请看下面的代码。

转载请注明出处,谢谢!

dclink.h

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值