2

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

Begin() 相当简单

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

我应该如何实现 end()?

4

1 回答 1

3

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

请记住,检查列表末尾的正确方法是调用List::end(),因此,如果您已正确设置List课程,那么返回的内容并不重要,只要

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

while工作,当您到达列表末尾时退出-loop。所以主要的事情是List::end()需要返回一些独特的东西,如果你正在遍历列表的中间,你将永远不会遇到。

于 2012-11-04T03:17:57.437 回答