我正在为我的家庭作业编写一个链接列表,我需要实现 begin() 和 end() 以满足我的程序的要求。
Begin() 相当简单
Node* List::begin(){return head;}
我应该如何实现end()?
最佳答案
您可以返回一个 NULL
指针,或者如果您有自定义 tail
节点,则返回该指针。如果是循环双向链表,则可以返回哨兵节点。
请记住,检查列表末尾的正确方法是调用 List::end()
,因此,如果您已正确设置 List
类,那么返回什么并不重要,只要
Node* node = mylist.begin();
while (node != mylist.end()) { /*... loop */ }
有效,当到达列表末尾时退出while
循环。所以最主要的是 List::end()
需要返回一些唯一的东西,如果你遍历列表的中间,你永远不会遇到这些东西。
关于c++ - 如何为自定义链表容器编写 end() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215743/