データ構造の最大HBLTからの任意の要素の削除
-
Kをルートとするサブツリーをツリーから切り離し、ノードKのサブツリーの融合に置き換えます。
-
Kからルートへのパスからsの値を更新し、必要に応じてこのパスのサブツリーを交換して、HBLTのプロパティを維持します。
sの値をKからrootに更新するには、各ノードの親ポインターが必要です。 s値が変更されていないことがわかると、s値を上位ノードに更新するためのこの操作は停止します。変更されたs値は、昇順を形成する必要があります。各ノードは前のノードより1つ多い必要があるためです。最大s値はO(log n)であり、すべてのs値が正であるため、更新パスで最大O(log n)ノードが検出されます。各ノードは、値を更新するためにO(1)を取ります。したがって、任意のノードを削除する全体的な複雑さはO(log n)
です。-
データ構造における圧縮された四分木と八分木
圧縮された四分木 細分化されたセルに対応するすべてのノードを格納するときに、多くの空のノードを格納してしまう可能性があります。このようなまばらなツリーのサイズを縮小するには、葉に興味深いデータがあるサブツリー(つまり、「重要なサブツリー」)のみを保存します。ここでも、実際にサイズをさらに縮小することができます。重要なサブツリーのみを考慮する場合、プルーニングプロセスは、中間ノードの次数が2(1つの親と1つの子へのリンク)であるツリー内の長いパスを回避する場合があります。このパスの先頭にノードUを格納し(そして削除されたノードを表すためにいくつかのメタデータをそれに関連付けて)、その最後にルー
-
ハーフエッジデータ構造
はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ