プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造の赤黒木


このセクションでは、赤黒木とは何かを見ていきます。赤黒木は、自己平衡二分探索木です。各ノードにはいくつかの条件があります。これらは以下のようなものです-

  • 各ノードには色があります。赤か黒のどちらか

  • ルートは常に黒になります

  • 隣接する2つのRedノードはありません

  • ノード(ルートを含む)からその子孫のNULLノードへのすべてのパスには、同じ数のブラックノードがあります。

赤黒木の例

データ構造の赤黒木

葉にヌルノードがある赤黒木

データ構造の赤黒木

AVLツリーとの比較

AVL木は、赤黒木よりもバランスが取れています。ただし、主な欠点は、挿入および削除中のローテーションが増えることです。複数の挿入と削除には、赤黒木が役立ちます。


  1. データ構造のBSPツリー

    コンピュータサイエンスでは、超平面をパーティションとして実装することにより、空間を2つの凸集合に再帰的に分割するために、バイナリ空間分割(BSP)と呼ばれる方法が実装されています。この細分化のプロセスにより、BSPツリーと呼ばれるツリーデータ構造の形式で領域内のオブジェクトが表現されます。 バイナリ空間分割は、1969年に3Dコンピュータグラフィックスのコンテキストで発明されました。BSPツリーの構造により、レンダリングに役立つシーン内のオブジェクトに関する空間情報が可能になります。たとえば、オブジェクトは前から後ろに並べられます。すばやくアクセスできるように、特定の場所にいる視聴者を尊重し

  2. データ構造の範囲ツリー

    範囲ツリーは、ポイントのリストを保持するための順序付けられたツリーデータ構造として定義されます。これにより、特定の範囲内のすべてのポイントを効率的に取得でき、通常は2次元以上で実装されます。 O(log d のクエリ時間が速いことを除いて、kdツリーと同じです。 n + k)が、O(n log d-1 のストレージが悪い n)、dはスペースの次元を示し、nはツリー内のポイントの数を示し、kは特定のクエリで取得されたポイントの数を示します。範囲ツリーは、間隔ツリーで区別できます。ポイントを格納して特定の範囲内のポイントを効率的に取得できるようにする代わりに、間隔ツリーは間隔を保存し、特定のポ