非根の黒葉ノードの削除とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 非根の黒葉ノードの削除の意味・解説 

非根の黒葉ノードの削除

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/01 09:37 UTC 版)

赤黒木」の記事における「非根の黒葉ノードの削除」の解説

複雑なケースは、Nが根でなく、黒色で、NILの子だけを持つ(⇔色が正確な子を持たない場合である。最初反復で、NはNIL置き換えられるvoid RBdelete2( RBtree* T, // -> 赤黒木 struct RBnode* N) // -> 削除対象ノード { struct RBnode* P = N->parent; // -> Nの親ノード byte dir; // Nの位置するPの側 (∈ { LEFT, RIGHT }) struct RBnode* S; // -> Nの兄弟ノード struct RBnode* C; // -> 近いおい struct RBnode* D; // -> 遠いおい // P != NULL, Nは根ではないので。 dir = childDir(N); // ノードNが位置する親Pの側(LEFTRIGHT) // 親PのNをNIL置き換える: P->child[dir] = NIL; goto Start_D; // ループ移動する // (do while)-ループ開始: do { dir = childDir(N); // ノードNの位置する親Pの側Start_D: S = P->child[1-dir]; // Nの兄弟 (黒高さ >= 1) D = S->child[1-dir]; // 遠いおい C = S->child[ dir]; // 近いおい if (S->color == RED) goto Case_D3; // Sが赤 ===> P+C+Dが黒 // S is black: if (D != NIL && D->color == RED) // 黒でないとみなす goto Case_D6; // Dが赤 && Sが黒 if (C != NIL && C->color == RED) // 黒でないとみなす goto Case_D5; // Cが赤 && S+Dが黒 // ここでは、両方のおい == NIL (最初反復) または黒 (上位反復). if (P->color == RED) goto Case_D4; // Pが赤 && C+S+Dが黒 リバランシングループは以下の不変条件を持つ。 各反復始めに、Nの黒高さは反復番号から1を引いたものに等しく、これは最初反復では0であり、上位反復ではNは真のノード であることを意味する。 Nを通る経路の黒ノード数は削除前より1つ少ないが、それ以外経路では変化しないので、他の経路存在する場合はPで黒違反発生することになる。 他のすべての性質性質4を含む)は、木全体で満たされている。

※この「非根の黒葉ノードの削除」の解説は、「赤黒木」の解説の一部です。
「非根の黒葉ノードの削除」を含む「赤黒木」の記事については、「赤黒木」の概要を参照ください。

ウィキペディア小見出し辞書の「非根の黒葉ノードの削除」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「非根の黒葉ノードの削除」の関連用語

1
8% |||||

非根の黒葉ノードの削除のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



非根の黒葉ノードの削除のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの赤黒木 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS