数据结构学习(C++)——循环链表[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 happycock 的 blog

原书对循环链表的介绍很简略,实现部分也不完整(当然了,如果完整就又是重复建设)。而我也没觉得循环链表有什么别的用,他更应该是为了一个特殊的问题而产生的,这只是个人的看法。我从链表类派生出了循环链表,这需要注意几个细节。

1.        构造函数:派生类实例化时,先调用基类的构造函数;因此,初始化循环链表的工作就是将带表头的空链表的表头节点的link指向表头节点,从而构成一个圈。

2.        析构函数:释放对象时,先调用派生类的析构函数,然后调用基类的析构函数。因此,释放循环链表只需要将循环链表变成普通的单链表,然后这个单链表会被基类的析构函数释放。这里假定不使用这种语句base *p = new drived;delete p;因为我在~list()前面没有加virtual。你可以参阅各种c++书籍搞清这类问题。

3.        判空函数:条件不是检测头节点的link是否为空,而是是否指向头节点。

4.        置空函数:原来的显然不能工作了,实际上只要从表头位置不断后删直到表空就可以了。

5.        next():遇到表头节点要跳过去。

本文关键:数据结构 C++ 循环链表
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top