- C#, C♯, C#相談室 Part85
552 :デフォルトの名無しさん[]:2014/12/02(火) 22:21:11.69 ID:2ZrIs2MN - LinkedList<T>は双方向リストを表現してますよね。
この双方向リストの中に入ってる要素はLinkedListNode<T>になってて ListだとO(n)かかる処理をO(1)で出来るってことだから 今までListで書いてた部分をLinkedListで書き変えようとしてます。 具体的な処理としては @リスト内の特定の要素をいったん削除する A削除した@の要素をリストに戻す ということをやりたいんですが、 @の削除のためにRemove(hoge)を実行すると hogeのPreviousやNextがnullになっちゃってて 戻したいとなっても戻すことができません。 どうしたらいいでしょうか? ちなみにあらかじめPreviousとNextをコピーしておいて Removeしたあとに設定しなおしてあげようと思ったら PreviousもNextも読み込み専用で設定はできないみたいです。 さてどうしたもんか・・・。
| - C#, C♯, C#相談室 Part85
556 :デフォルトの名無しさん[]:2014/12/02(火) 23:31:06.32 ID:2ZrIs2MN - >>553,>>555
やっぱり自作するしかないですかね〜、よし自作しよう! >>554 元あった場所にO(1)で戻すことができないんですよ Removeが削除したノードのPreviousやNextを nullにする意味ってないと思うんですけどね〜。 削除されたあとのリンクを繋ぎ直してくれるだけでいいのに、 余計なことをしてくれちゃうんだからもぅ〜。
|
|