リンクリストの追加と削除は一定時間、すなわちO(1)で起こるが、要素のアクセスはリストのサイズ、すなわちO(N)に比例して起こると言われている。私の質問は、最初にそれをトラバースすることなく要素を削除または追加する方法です。その場合、O(N)の順序も追加または削除されませんか?いくつかのいずれかが、この操作は一定の時間で起こることができるか、stamps.remove(k)を行いときに実際には、リンクリスト追加O(N)またはO(1)ですか?
LinkedList stamps = new LinkedList();
stamps.add(new Stamp("Brazil"));
stamps.add(new Stamp("Spain"));
---
----
stamps.add(new Stamp("UnitedStates"); //say this is kth element in the list
----
stamps.add(new Stamp("India");
:私たちは、このようにAPIを使用する場合
のJavaを例に取ると、何が起こりますか?
は、LinkedListのクライアントがstamps.add(k、new Stamp( "UK")のような呼び出しを持っていると考えます。その場合、操作は複雑さO(n)で時間がかかるリンクリストの実装は、現在どのノードがリストの最後にあるかを知っていますか? – Inquisitive
もちろん、どのノードが "k"番目であるかを知るためには、必ず反復処理が必要ですリストの内容 –