AVL ट्री बाएँ और दाएँ उप-वृक्षों की ऊँचाई की जाँच करता है और आश्वासन देता है कि अंतर 1 से अधिक नहीं है। इस अंतर को बैलेंस फैक्टर कहा जाता है।
उदाहरण के लिए, निम्नलिखित पेड़ों में पहला पेड़ संतुलित है और अगले दो पेड़ संतुलित नहीं हैं -
दूसरे पेड़ में, सी के बाएं उपट्री की ऊंचाई 2 है और दाएं उपट्री की ऊंचाई 0 है, इसलिए अंतर 2 है। तीसरे पेड़ में, ए के दाएं उपट्री की ऊंचाई 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; } };