25

二重リンクリスト(O(1))でのノード削除の時間計算量が、単一リンクリスト(O(n))でのノード削除よりも速いのはなぜですか?

4

8 に答える 8

6

後ろが見えないから…

于 2009-12-15T03:15:29.127 に答える
4

既知の位置での挿入と削除は O(1) です。ただし、その位置を見つけることは、リストの先頭または末尾でない限り、O(n) です。

挿入と削除の複雑さについて話すときは、通常、それがどこで発生するかを既に知っていると想定しています。

于 2014-11-17T07:51:10.270 に答える
3

これは、削除するノードの前のノードで次のポインターを修正する複雑さと関係があります。

于 2009-12-13T06:53:51.037 に答える
3

削除する要素が先頭 (または最初) のノードでない限り、削除する要素の前のノードにトラバースする必要があります。したがって、最悪の場合、つまり最後のノードを削除する必要がある場合、ポインターは最後から 2 番目のノードまで移動する必要があり、それによって (n-1) の位置をトラバースし、O(n) の時間計算量が得られます。 .

于 2016-08-05T06:40:16.847 に答える