0

私は最近、リンクされたリストを使い始めました。insert(...) 関数でリンクされたリストに要素をプッシュするために、常に if(head == NULL) をチェックするのを見ましたが、それは 1 回しか発生しません。

不必要なチェックを常に回避できる方法があれば知りたいです。リンクされたリスト操作のほとんどに関連するものを提案してください。私が見つけた1つの解決策は、新しい関数「add_first_element(....)」を作成して、明示的に最初の要素を追加し、次に他の要素を一般的な方法で追加することです。

より良い解決策を探しています。

4

1 に答える 1

1

一般的な方法は、センチネル ノードを使用することです。つまり、有用なデータを含まず、最初のノードの前のノードのプレースホルダーとしてのみ機能するノードです。この方法では、null をチェックする必要はありません。

二重リンク リストの場合、null チェックを回避するために 2 つのセンチネル ノードが必要になります。

于 2013-09-08T03:55:45.767 に答える