मुझे AVL पेड़, किसी भी सबसे बाईं ओर पत्ती से प्रत्येक नोड की ऊंचाई अंतर होने के लिए एक द्विआधारी पेड़ के लिए, अधिक व्यापक विश्लेषण करने के लिए कोशिश करते हैं किसी भी दाहिने पत्ते के लिए {-1, 0, 1} के भीतर झूठ बोलना चाहिए। AVL के लिए
प्रविष्टि:
AVL insertion- एल के लिए चार मामलों रहे हैं - एल एल - आर आर - आर आर - एल
अब, मामले (क)। [यदि संतुलन> 1] एलएल (बाएं - बाएं) एक नोड एक्स {-1, 0, 1} बाधा का उल्लंघन करता है और दाएं से अधिक ऊंचाई छोड़ देता है - एल का पहला बायां एक बायां उप बच्चा वाई है जिसके बाएं ऊंचाई दाएं से बड़ा है .. फिर एल एक्शन - वाई घड़ी के बारे में घूमें। अर्थात। एक दाएं रोटेशन।
केस (बी) (एल-आर केस) मान लीजिए कि ज़ेड के लिए कुछ जेड नोड डालना है, इसका पहला मूल्यांकन किया गया है, जिस पत्ते पर, बाएं या दाएं, इसे रखा गया है। ठीक है, अगर अधिक वजन, कम वजन अगर छोड़ दिया। कहें, ज़ेड ', नया नोड, wt (Z')> wt (Z), यानी, ज़ेड 'जेड के दाहिने बच्चे के रूप में डाला गया है, एल-आर के मामले में, संपूर्ण लिंक जेडजेड' घड़ी की दिशा में घुमाया गया है, अब यह एलएल केस है और इसलिए उपरोक्त मामले (ए) का उपयोग कर हल किया गया है। अर्थात। एक बाएं और फिर एक दाएं रोटेशन।
केस (सी) [यदि शेष < -1] (आर - आर मामले) इसी प्रकार, आर-आर केस, समायोजन के लिए बस बाइनरी खोज नियम लागू करें और यह मामला काम करता है। अर्थात। एक बाएं रोटेशन।
केस (डी) (आर - एल केस) इसे पहले आर-आर मामले में परिवर्तित किया गया है और इसलिए उपरोक्त मामले (सी) का उपयोग करके हल किया गया है। अर्थात। एक दाएं और फिर एक बाएं रोटेशन।
स्रोत
2016-10-31 08:57:11
इसके लिए एक डबल रोटेशन की आवश्यकता है, 11 घुमाएं, और फिर 5. – StoryTeller
@StoryTeller धन्यवाद, मुझे यह नहीं पता। मैं विकिपीडिया लेख पढ़ता हूं लेकिन मुझे समझ में नहीं आता कि डबल रोटेशन निर्धारित करने के लिए कितनी अच्छी तरह से आवश्यकता है। क्या आप इसे एक आसान तरीके से समझा सकते हैं? – MRB
बीटीडब्ल्यू 7 को सही नोड में खींचा जाना चाहिए। – Grzegorz