एवीएल ट्री से किसी तत्व को हटाना बीएसटी से हटाने के समान है, सिवाय इसके कि पेड़ को पुनर्संतुलित करने की आवश्यकता हो सकती है। जैसा कि बीएसटी से तत्वों को हटाना अनुभाग में चर्चा की गई है, बाइनरी ट्री से किसी तत्व को हटाने के लिए, एल्गोरिदम पहले उस नोड का पता लगाता है जिसमें तत्व शामिल है। current उस नोड को इंगित करें जिसमें बाइनरी ट्री में तत्व शामिल है और parent current नोड के पैरेंट को इंगित करें। वर्तमान नोड पैरेंट नोड का बायां बच्चा या दायां बच्चा हो सकता है।
किसी तत्व को हटाते समय दो मामले सामने आते हैं।
केस 1: वर्तमान नोड में कोई बायां बच्चा नहीं है, जैसा कि नीचे चित्र (ए) में दिखाया गया है। current नोड को हटाने के लिए, बस parent नोड को current नोड के दाएं चाइल्ड से कनेक्ट करें, जैसा कि नीचे चित्र (बी) में दिखाया गया है। पैरेंट नोड से रूट तक पथ के साथ नोड्स की ऊंचाई कम हो सकती है। यह सुनिश्चित करने के लिए कि पेड़ संतुलित है, आह्वान करें
balancePath(parent.element);
केस 2: वर्तमान नोड में एक बायाँ बच्चा है। rightMost को उस नोड पर इंगित करने दें जिसमें current नोड के बाएं उपट्री में सबसे बड़ा तत्व शामिल है और parentOfRightMost को rightMost के मूल नोड पर इंगित करें नोड, जैसा कि नीचे चित्र (ए) में दिखाया गया है। rightMost नोड में दायां बच्चा नहीं हो सकता है लेकिन इसमें बायां बच्चा हो सकता है। current नोड में तत्व मान को rightMost नोड में से बदलें, parentOfRightMost नोड को rightMost के बाएं बच्चे के साथ कनेक्ट करें ] नोड, और rightMost नोड को हटा दें, जैसा कि नीचे चित्र (बी) में दिखाया गया है।
parentOfRightMost से रूट तक पथ में नोड्स की ऊंचाई कम हो सकती है। यह सुनिश्चित करने के लिए कि पेड़ संतुलित है, आह्वान करें
balancePath(parentOfRightMost);
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3