我正在为我的家庭作业写一个链表,我需要为我的程序的要求实现begin()和end()。如何为自定义链表容器编写end()?
开始()是相当容易
Node* List::begin(){return head;}
我应该如何实现年底()?
我正在为我的家庭作业写一个链表,我需要为我的程序的要求实现begin()和end()。如何为自定义链表容器编写end()?
开始()是相当容易
Node* List::begin(){return head;}
我应该如何实现年底()?
您可以返回一个NULL
指针,或者如果您有自定义的tail
节点,则返回该指针。如果它是一个循环双向链表,则可以返回哨兵节点。
请记住,检查列表的末尾的正确方法是调用List::end()
,所以如果你正确设置你的List
类,那么它并不完全不管你什么回报,只要
Node* node = mylist.begin();
while (node != mylist.end()) { /*... loop */ }
工作和你退出while
当你到达列表的末尾。所以最主要的是List::end()
需要返回唯一的,如果你遍历列表的中间,你永远不会遇到。
'return tail;'? –
'begin()'和'end()'应该返回STL风格的迭代器,还是只返回一个'Node *'? (我怀疑这是一种STL风格的迭代器,但我认为最好确保它。) –
作业标记已过时,不应再使用。请参阅http://meta.stackexchange.com/questions/147100。 –