質問するログイン新規登録

回答編集履歴

1

説明のために例を追記

2018/06/01 01:38

投稿

HiroshiWatanabe
HiroshiWatanabe

スコア2160

answer CHANGED
@@ -1,1 +1,10 @@
1
- 双方向という事は前後へのリンク情報も保持しているという事なので削除対象が特定されている時点で削除物の前にあるデータと削除物の後にあるデータを連結して削除対象物をリストから除外するという整理操作がその場ですぐに解決できますが、例えば片方向(後方)の場合だと、削除対象が特定されていても削除物の前にあるデータは検索しないと特定できないので双方向の時に比べると検索コストが余計にかかってしまう理屈になります。
1
+ 双方向という事は前後へのリンク情報も保持しているという事なので削除対象が特定されている時点で削除物の前にあるデータと削除物の後にあるデータを連結して削除対象物をリストから除外するという整理操作がその場ですぐに解決できますが、例えば片方向(後方)の場合だと、削除対象が特定されていても削除物の前にあるデータは検索しないと特定できないので双方向の時に比べると検索コストが余計にかかってしまう理屈になります。
2
+
3
+ [例]
4
+ A→B→C から B を削除したい場合に
5
+ 1.「Aの次がBである」を「Aの次はCである」に変更
6
+ 2.「Cの前がBである」を「Cの前はAである」に変更(双方向の場合)
7
+ をしなくてはなりませんが、
8
+ ・双方向ならBがAとCへのリンク情報を持っているのでBだけですぐにAとCを特定できる
9
+ ・片方向ならBはCへのリンク情報しかもっていないのでAの特定には検索が必要
10
+ という違いがあります。