如何为自定义链表容器编写end()?

时间:2012-11-04 03:16:06

标签: c++

我正在为我的家庭作业写一个链表,我需要为我的程序要求实现begin()和end()。

Begin()相当容易

Node* List::begin(){return head;}

我应该如何实现end()?

1 个答案:

答案 0 :(得分:3)

您可以返回NULL指针,或者如果您有自定义tail节点,则返回该指针。如果它是循环双向链表,则可以返回标记节点。

请注意,检查列表末尾的正确方法是致电List::end(),因此如果您正确设置了List课程,那么这并不重要你返回,只要

Node* node = mylist.begin();
while (node != mylist.end()) { /*... loop */ }

有效,当您到达列表末尾时退出while - 循环。所以主要的是List::end()需要返回一些 unique ,如果你正在遍历列表的中间,那么你将永远不会遇到它。