JavascriptAVLツリーでバランス係数を計算する
AVLツリーは、左右のサブツリーの高さをチェックし、差が1以下であることを確認します。この差はバランス係数>
たとえば、次のツリーでは、最初のツリーはバランスが取れており、次の2つのツリーはバランスが取れていません-
2番目のツリーでは、Cの左側のサブツリーの高さが2で、右側のサブツリーの高さが0であるため、差は2です。3番目のツリーでは、Aの右側のサブツリーの高さが2で、左側が欠落しているため、0になります。 、そして差は再び2です。 AVLツリーでは、差(バランス係数)を1のみにすることができます。
BalanceFactor = height(left-sutree) − height(right-sutree)
左右のサブツリーの高さの差が1より大きい場合、ツリーはいくつかの回転手法を使用してバランスが取られます。
このメソッドを定義し、クラスも初期化しましょう-
例
class AVLTree {
constructor() {
// Initialize a root element to null.
this.root = null;
}
getBalanceFactor(root) {
return this.getHeight(root.left) - this.getHeight(root.right);
}
getHeight(root) {
let height = 0;
if (root === null) {
height = -1;
} else {
height = Math.max(this.getHeight(root.left), this.getHeight(root.right)) + 1;
}
return height;
}
}
AVLTree.prototype.Node = class {
constructor(data, left = null, right = null) {
this.data = data;
this.left = left;
this.right = right;
}
}; -
JavascriptAVLツリーでバランス係数を計算する
AVLツリーは、左右のサブツリーの高さをチェックし、差が1以下であることを確認します。この差はバランス係数 たとえば、次のツリーでは、最初のツリーはバランスが取れており、次の2つのツリーはバランスが取れていません- 2番目のツリーでは、Cの左側のサブツリーの高さが2で、右側のサブツリーの高さが0であるため、差は2です。3番目のツリーでは、Aの右側のサブツリーの高さが2で、左側が欠落しているため、0になります。 、そして差は再び2です。 AVLツリーでは、差(バランス係数)を1のみにすることができます。 BalanceFactor = height(left-sutree) &min
-
JavaScriptを使用してパリティビットを計算してバイナリに追加する
パリティビット パリティビットまたはチェックビットは、ビットの文字列に追加されるビットであり、文字列内の1ビットの総数が偶数または奇数になるようにします。 問題 2つのパラメーターを受け取るJavaScript関数を作成する必要があります。1つは必要なパリティ(常に「偶数」または「奇数」)であり、もう1つはチェックする数値のバイナリ表現です。 この関数のタスクは、整数(0または1)を返すことです。これは、結果の文字列のパリティが期待どおりになるように、バイナリ表現に追加する必要のあるパリティビットです。 例 以下はコードです- const parity = 'even'