インターバルヒープへの要素の挿入
インターバルヒープに存在する要素の数に応じて、次の場合が考えられます-
- 奇数の要素:間隔ヒープ内の要素の数が奇数の場合、新しい要素が最初に最後のノードに挿入されます。次に、前のノード要素と連続して比較され、インターバルヒープに不可欠な基準を満たすかどうかがテストされます。要素がいずれの基準も満たさない場合、すべての条件が満たされるまで、要素は最後のノードからルートに転送されます。
- 偶数の要素:要素の数が偶数の場合、新しい要素を挿入するために追加のノードが作成されます。要素が親間隔の左側にあるか属している場合は、最小ヒープ内にあるものとして扱われ、要素が親間隔の右側にある場合または属している場合は、最大ヒープ内にあるものとして扱われます。さらに、インターバルヒープのすべての条件が満たされるまで、連続して比較され、最後のノードからルートに転送されます。要素が親ノード自体の間隔内にあるか属している場合、プロセスはその場で終了し、要素の転送は実行されません。要素の挿入に必要な時間は、すべての条件を満たすために必要な移動の数によって異なり、O(log n)です。
-
データ構造のインターバルヒープ
ここでは、間隔ヒープとは何かを確認します。間隔ヒープは完全な二分木であり、最後のノードを除く各ノードには2つの要素が含まれている可能性があります。ノードPの2つの要素の優先順位を「a」と「b」とします。ここでは、≤bを検討しています。ノードPは閉区間[a、b]を表すと言います。ここで、aはPの区間の左端であり、bは右端です。 [c、d]は、a≤c≤d≤bの場合に限り、区間[a、b]に含まれます。区間ヒープでは、各ノードPの左右の子で表される区間は、Pで表される区間に含まれます。最後のノードに優先度cの単一要素が含まれている場合、a≤c≤bです。ここで、[a、b]は最後のノードの親の間隔です。
-
C言語のキューに挿入する要素は何ですか?
データ構造は、構造化された方法で編成されたデータのコレクションです。以下に説明するように、2つのタイプに分けられます- 線形データ構造 −データは直線的に編成されます。たとえば、配列、構造、スタック、キュー、リンクリスト。 非線形データ構造 −データは階層的に編成されています。たとえば、ツリー、グラフ、セット、テーブル。 キュー これは線形データ構造であり、挿入は後端で行われ、削除は前端で行われます。 キューの順序はFIFO–先入れ先出しです。 操作 挿入–要素をキューに挿入します。 削除–キューから要素を削除します。 条件 キューオーバーフロー-要素を完全