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、リストの最後に到達するとループを終了します。その主なことは、リストの中央をトラバースしている場合に遭遇することのない固有のList::end()ものを返す必要があるということです。

于 2012-11-04T03:17:57.437 に答える