例を挙げて赤黒木の特性を説明する赤黒木とは何ですか?
質問者:Stefanov Pamos |最終更新日:2020年1月26日
カテゴリ:テクノロジーおよびコンピューティングデータベース
赤黒木の定義
赤-黒ツリーは、次の赤有する二分探索木である-ブラック特性を:すべてのノードが赤または黒です。すべての葉(NULL)は黒です。ノードが赤の場合、その子は両方とも黒です。赤黒木は、コンピュータサイエンスにおける一種の自己平衡二分探索木です。二分木の各ノードには余分なビットがあり、そのビットはノードの色(赤または黒)として解釈されることがよくあります。これらのカラービットは、挿入および削除中にツリーのバランスがほぼ保たれるようにするために使用されます。
上記のほかに、赤黒木の特性は次のうちどれですか? 1)すべてのノードの色は赤または黒です。 2)樹木の根は常に黒です。 3)2つの隣接する赤いノードはありません(赤いノードは赤い親または赤い子を持つことはできません)。 4)ノード(ルートを含む)からその子孫のNULLノードへのすべてのパスには、同じ数のブラックノードがあります。
同様に、人々は尋ねます、あなたは赤黒木とはどういう意味ですか?
定義。赤黒木は、各ノードが次のように赤または黒に着色されている二分探索木です。ルートは黒です。赤いノードの子は黒です。ルートから0ノードまたは1ノードへのすべてのパスには、同じ数のブラックノードがあります。
赤黒木の用途は何ですか?
赤黒木は一種のバランスの取れた木であり(他はAVL木と2-3-木です)、通常は要素の高速検索のために、木が使用されるすべての場所で使用できます。たとえば、セットやマップ用のC ++ STL(標準テンプレートライブラリ)の一部の実装で使用されます。
26関連する質問の回答が見つかりました
例のある赤黒木とは何ですか?
赤黒木は、特定のノードが追加の属性として赤または黒の色を持っている二分木です。ルートからリーフまでの単純なパスのノードの色を確認することにより、赤黒木は、そのようなパスが他のパスの2倍より長くないことを保証し、ツリーが一般的にバランスが取れるようにします。
次のうち、赤黒木の用途とその理由はどれですか?
次のうち、赤黒木を応用したものとその理由はどれですか?説明:RBツリーは、完全に公平なスケジューラープロセススケジューリングアルゴリズムの形式でLinuxカーネルに使用されます。これは、より高速な挿入、取得に使用されます。また、赤黒は要素を入力順序ではなくソートされた順序で格納します。
AVLツリーと赤黒木の違いは何ですか?
赤黒木は、バランスが比較的緩いために実行される回転が少ないため、 AVL木よりも高速な挿入および削除操作を提供します。赤黒木は、C ++のマップ、マルチマップ、マルチセットなどのほとんどの言語ライブラリで使用されますが、 AVLツリーは、より高速な取得が必要なデータベースで使用されます。
赤黒木の高さはどれくらいですか?
赤のノードは赤の子を持つことができないため、最悪の場合、そのパス上のノードの数は赤/黒を交互にする必要があります。したがって、そのパスは、木の黒い深さの2倍の長さになります。したがって、ツリーの最悪の場合の高さはO(2 log n b )です。したがって、赤黒木の高さはO(log n)です。
AVLツリーとはどういう意味ですか?
AVLツリーは自己平衡二分探索木(BST)であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません。 AVLツリーであるサンプルツリー。すべてのノードの左右のサブツリーの高さの差が1以下であるため、上記のツリーはAVLです。
赤黒木はバランスが取れていますか?
赤黒木はバランスが取れていますが、必ずしも完全ではありません。正確に言うと、赤黒木の特性により、葉への最長のパス(暗黙的、写真には表示されていません)が最短の2倍の長さになることが保証されます。
スプレーツリーはどのように機能しますか?
スプレーツリーは、最近アクセスした要素にすばやく再度アクセスできる追加のプロパティを備えた、自己平衡型の二分探索木です。 O(log n)償却時間で挿入、検索、削除などの基本的な操作を実行します。
赤黒木はどのようにバランスを確保しますか?
直感的に: -それは赤のノードが含まれていない場合は、すべてのルートの葉のパスは黒のノードの同じ数を持っているのでBlackツリー、バランスされたプロパティIVは赤があることを保証します。赤のノードが追加されると、プロパティIIIは、k個の黒のノードを持つルートからリーフへのパス上に最大でk個の赤のノードが存在することを保証します。
赤黒木にすべての黒ノードを含めることは可能ですか?
ブラックツリー-はい、すべてのノードブラックとツリーが赤であることができます。すべての黒ノードを持つ適切な赤黒木を持つことが可能です。自明なことに、ノードが1つしかない、またはリーフノードだけがルートの直接の子であるRBTreeは、すべてバックノードになります。
例のあるB +ツリーとは何ですか?
B +ツリーとBツリー
B +ツリー | Bツリー |
---|---|
検索キーを繰り返すことができます。 | 検索キーを冗長にすることはできません。 |
データはリーフノードにのみ保存されます。 | リーフノードと内部ノードの両方がデータを保存できます |
リーフノードに保存されたデータにより、検索がより正確かつ高速になります。 | リーフと内部ノードにデータが保存されているため、検索が遅くなります。 |
Javaの赤黒木とは何ですか?
赤黒木は、自己平衡二分探索木の一種であり、コンピュータサイエンスで使用されるデータ構造であり、通常、連想配列を実装するために使用されます。元の構造は、1972年に「対称バイナリBツリー」と呼ばれるルドルフバイヤーによって発明されましたが、1978年にレオJによって論文でその現代的な名前を取得しました。
データ構造のBツリーとは何ですか?
Bツリーは、データの並べ替えを維持し、対数償却時間での検索、挿入、および削除を可能にするツリーデータ構造です。自己平衡二分探索木とは異なり、データの大きなブロックを読み書きするシステム向けに最適化されています。これは、データベースおよびファイルシステムで最も一般的に使用されます。 B-ツリールール。
Bツリーの特性は何ですか?
Knuthの定義によれば、次数mのBツリーは、次の特性を満たすツリーです。すべてのノードには最大でm個の子があります。すべての非リーフノード(ルートを除く)には、少なくとも⌈m/2⌉の子ノードがあります。ルートがリーフノードでない場合、ルートには少なくとも2つの子があります。
赤黒木によってOlog n時間計算量で実行できる操作は何ですか?
二分探索木と同様に、赤黒木に対して次の操作を実行できるようにする必要があります。
- キー値を挿入(挿入)
- キー値がツリーにあるかどうかを判断します(ルックアップ)
- ツリーからキー値を削除します(削除)
- すべてのキー値を並べ替えられた順序で印刷します(印刷)
赤黒木は兄弟なしで黒ノードを持つことができますか?
すべてのノードの色は赤または黒です。ツリーのルートは常に黒です。どの2つの隣接する赤のノードがありません(赤のノードは赤親または赤の子を持つことはできません)。ルートからNULLノードへのすべてのパスには、同じ数のブラックノードがあります。
高さKが黒の赤黒木の内部ノードの可能な最大数はいくつですか?
黒のツリーの内部ノードの最大数の実際の式-高さkは4 ^( k )-1です。この場合、15であることがわかります。
赤黒木は重複することができますか?
簡単にするために、実装では重複する値をツリーに挿入することはできません。