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

JavascriptAVLツリーでバランス係数を計算する


AVLツリーは、左右のサブツリーの高さをチェックし、差が1以下であることを確認します。この差はバランス係数>

たとえば、次のツリーでは、最初のツリーはバランスが取れており、次の2つのツリーはバランスが取れていません-

JavascriptAVLツリーでバランス係数を計算する

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;
   }
};

  1. JavascriptAVLツリーでバランス係数を計算する

    AVLツリーは、左右のサブツリーの高さをチェックし、差が1以下であることを確認します。この差はバランス係数 たとえば、次のツリーでは、最初のツリーはバランスが取れており、次の2つのツリーはバランスが取れていません- 2番目のツリーでは、Cの左側のサブツリーの高さが2で、右側のサブツリーの高さが0であるため、差は2です。3番目のツリーでは、Aの右側のサブツリーの高さが2で、左側が欠落しているため、0になります。 、そして差は再び2です。 AVLツリーでは、差(バランス係数)を1のみにすることができます。 BalanceFactor = height(left-sutree) &min

  2. JavaScriptを使用してパリティビットを計算してバイナリに追加する

    パリティビット パリティビットまたはチェックビットは、ビットの文字列に追加されるビットであり、文字列内の1ビットの総数が偶数または奇数になるようにします。 問題 2つのパラメーターを受け取るJavaScript関数を作成する必要があります。1つは必要なパリティ(常に「偶数」または「奇数」)であり、もう1つはチェックする数値のバイナリ表現です。 この関数のタスクは、整数(0または1)を返すことです。これは、結果の文字列のパリティが期待どおりになるように、バイナリ表現に追加する必要のあるパリティビットです。 例 以下はコードです- const parity = 'even'