कैसे एक अधिकतम ढेर से हटाने के लिए?

वोट
0

हम जड़ में 15 डालते हैं, तो क्या heapify की प्रक्रिया हो सकता है?

            85
            /\
           /  \
          /    \
        55      70
        /\      /\
       /  \    /  \
      22  33  30  65
     /\   /
   14 15 15

क्या ढेर से 85 को हटाने के लिए जिस तरह से किया जाना चाहिए?

10/07/2011 को 10:53
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

आप (अपने उदाहरण में सही करने के लिए 20) के रूप में पिछले नया मान रखा है, और फिर आप ढेर ठीक करने की कोशिश को जोड़ने के लिए, कि उनके माता-पिता के साथ तुलना, अगर यह स्वैप बड़ा है और जब तक कोई स्वैप की जरूरत है फिर से तुलना (है या आप जड़ तक)

हटाने के लिए आप (आप उदाहरण में 15) पिछले वस्तु की जगह और नीचे ढेर ठीक हटा दें।

10/07/2011 को 11:05
का स्रोत उपयोगकर्ता

वोट
1

आप 85 हटा सकते हैं और 15 से बदलने हैं, तो आप अर्द्ध ढेर वापस एक ढेर में जड़ में downheaping, यानी 15 बड़े बच्चों के मार्ग के किनारे "सिंक" होगा द्वारा बदल जाते हैं। इस मामले में यह 65 के साथ फिर 70 के साथ स्वैप जाएगा।

संपादित करें: क्योंकि हम हमेशा बड़े बच्चे के साथ अदला-बदली कर रहे हैं, यह सुनिश्चित करता है तो हमें एक वैध ढेर के साथ अंत (उदाहरण के लिए अगर हम हमारे 70 के बजाय 55 से 15 की अदला-बदली, हम 55 का एक बच्चा जो अच्छा नहीं है के रूप में 70 के लिए होता है)

10/07/2011 को 11:08
का स्रोत उपयोगकर्ता

वोट
4

आप हमेशा दो के बड़े के साथ अदला-बदली कर रहे हैं (ढेर संपत्ति का मतलब है कि माता-पिता हमेशा अपने बच्चों से भी बड़ा है):

            15
            /\
           /  \
          /    \
        55      70
        /\      /\
       /  \    /  \
      22  33  30  65
     /\   
   14 15

            70
            /\
           /  \
          /    \
        55      15
        /\      /\
       /  \    /  \
      22  33  30  65
     /\   
   14 15

            70
            /\
           /  \
          /    \
        55      65
        /\      /\
       /  \    /  \
      22  33  30  15
     /\   
   14 15
10/07/2011 को 11:09
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more