
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>親の入れ替えを行う際枝の分かれ方によって入れ替え方が4パターンあると思うのですが、それは全て場合分けして書くのでしょうか。
場合分けは
右にズラしてバランスするか左にズラしてバランスするか、で2パターン
親から見て、ズラすノードが右腕にあるか左腕にあるか、で2パターン
になります。
これら2つの処理をいっぺんに書けば、2パターン×2パターンで4パターンになりますが、別々に書けば4パターンも要りません。
No.2
- 回答日時:
>書き込みや削除を繰り返して深さに差の出た探索二分木をバランス化する手続きを作りたい
う~む。普通は「削除を終えた直後」「挿入を終えた直後」に「バランス化を行う」のですが。
因みに「更新(書き込み)」は「更新前データを削除して、更新データを挿入する」と言う手続きで可能です。
で、バランスを取る際は各ノードの「右腕の長さ」と「左腕の長さ」を調べる必要があります。
根
/
A
/ \
B C
/
D
の状態でCを削除すると
根
/
A
/
B
/
D
となり「Aの左腕は長さ2、右腕は長さ0」になります。
ここで「左右の長さの差が2以上になっていたら」
根
/
B
/ \
D A
のように、親の入れ替えを行います。
これを「変化(挿入か削除)があったノードの親からスタートして、根に辿り付くまで」繰り返します。
なお「ある時点で一気にバランス化する」のであれば「最小値のノードから、最大値のノードまでを順に、各ノードすべてにおいて、上記の腕の長さのチェックと入れ替え」が必要になります。
返事遅くなりました。
わかりやすい説明ありがとうございます。
重ねて質問なのですが、親の入れ替えを行う際枝の分かれ方によって入れ替え方が4パターンあると思うのですが、それは全て場合分けして書くのでしょうか。
No.1
- 回答日時:
とりあえず「赤黒木」(red-black tree)とか
「AVL木」(AVL tree)というキーワードで検索してみて、
見つかった説明でわからなかったらどのあたりがわからないのかを
具体的に書いてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(暮らし・生活・行事) M12で埋め込み深さ30mmのアンカーボルトを探しています 2 2023/05/08 17:36
- ガーデニング・家庭菜園 花材 収納 ディスプレイ用品 花材用の収納用品探しています。 おそらく花材用、お花屋さん等で使うもの 1 2022/11/30 08:06
- iPhone(アイフォーン) iphoneのテザリングを使ったappleTVのネットワーク設定ができなくなりました 1 2022/03/26 19:53
- アニメ 20ほど前のアニメが思い出せない 1 2022/09/27 19:27
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Google Drive Google IDでログインする時にアカウントID一覧に出てくるIDを削除したい。 1 2022/10/02 11:17
- カスタマイズ(車) R35の4.3クランクや4.3コンプリートエンジンを付けた方に、お話をお聞きしたいです。 1 2023/04/05 23:15
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
- Word(ワード) ワードでフォントを選ぶとき、一覧からではなく検索等できないでしょうか? 2 2022/10/22 17:52
- 英語 プライバシー度の高い英文書の文法チェックを、お願いできる業者さんを探しています。 3 2023/08/24 03:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ルート要素ノードが2個ある場合?
-
TreeViewコントロールについて
-
TreeVIewのノード名を編集する...
-
XML::LibXMLのfindnodes()で、...
-
各ノードの行数取得
-
ツリーでのアイコンの設定
-
ノードとは
-
TreeViewのノードの編集結果が...
-
C#でTreeViewのCheckBoxのサイ...
-
TreeViewに重複する値をセット
-
SNMP リンクダウンとノードダ...
-
CPUの考え方を教えてください ...
-
ツリービューの使い方が・・・
-
C# TreeView 効率良いノード追...
-
XML文書の指定した属性値を持つ...
-
同じタグ名の項目取得
-
XMLで要素が記述された順番に意...
-
VBA コードを中断するには?
-
4バイトを10進数に変換する方法
-
XML、XSLTの適応エラー(IEから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
同じタグ名の項目取得
-
C#でTreeViewのCheckBoxのサイ...
-
TreeView の初期表示について
-
昔Winnyってありましたけど、あ...
-
ノードとは
-
複数のマックPCによる数値計算...
-
C# TreeView 効率良いノード追...
-
TreeViewで複数ノードの選択は...
-
vbsのDOMDocumentで要素のText...
-
ツリービューのノードをダブル...
-
TreeViewに重複する値をセット
-
ToolStripMenuItemの選択(VB)
-
各ノードの行数取得
-
VB2005 TreeViewの任意ノード選択
-
TreeViewのノードの編集結果が...
-
TreeVIewのノード名を編集する...
おすすめ情報