- 512 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 22:02:54.87 ID:tN4i8A7m.net]
- >>501
>なるほど。アクセス時に通し番号的な物が必要になるのであれば >insert, remove 操作時にもその通し番号を振り直す必要があるので、O(1) では実現できない気がします。 先頭や末尾では無い途中のinsert、removeであれば、あなたの言うとおり。 追加する直前のノードにたどり付くまでに一般的にはO(N)の時間が掛かる。 ただまあ、末尾追加や先頭追加と、末尾削除、先頭削除なら、RustでもO(1)で 出来るだろう。 なお、Cursorを使えば、よくあるケースだけは高速に行えるようになっているかも知れないが。 あくまでも良くあるケースだけは、unsafeを使って特別対応しているだけ。 複雑な一般的なケースでは、やはり、O(N)かかってしまう。 その意味で、あなたの言っていることは正しい。
|

|