下午上机的时候大概地实现了链表的基本功能。写的时候也不是光是脑袋想,
就在word里面画了个粗糙的图形,边看边写。刚刚开始的时候功能可以不要
太多。把最基本的功能先实现,也就是数据定义,default constructor和destructor的功能
。然后测试,再增加功能,这样后来写的时候出错的时候就会很明朗,至少不会是前面写的
function出错了。g++和vc下调试通过。main里面的测试只是其中的一部分,写的时候删了许多。
双向循环链表。首先它是一个环状的,只是不是那么圆,就像一个蛇咬住了自己的尾巴,那个发现苯环
的人就是晚上做了个梦,蛇咬住了自己的尾巴,然后他发现了苯环的结构。灵感源自生活,所以我们程序员
虽然总是对着电脑,但是请不要忘了,离开了电脑我们还有很广阔的世界,说多了哈,刚刚打了下酱油。
接着上面的。然后它又是双向的,所以它应该有2个指针,一个就是pre(前驱),一个就是next(后继)。
就像右边这个图里面画的那样,画的不咋样,这个还是到寝室后重新画的。
清楚了它的结构,实现起来就比较简单了,某些功能比单链表实现起来更简单点,毕竟它是双向的,所以很灵活,链表的用途还是很广泛的,os里面的各种作业调度算法的实现都是和链表息息相关。所以它的重要性可见一斑了。
如果你自己感兴趣的话也可以自己去实现一下,C/C++都行。
链表的学习到这里就结束了,对数据结构,linux C/C++有着浓厚兴趣的同学可以加群91926913一起交流下。
最后请看下面的代码。
转载请注明出处,谢谢!
dclink.h