我正在爲我的家庭作業寫一個鏈表,我需要爲我的程序的要求實現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。 –