Comment supprimer d'un Max-Heap?

voix
0

Si nous mettons 15 à la racine, ce serait le processus de heapify?

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

Quel devrait être le moyen de supprimer 85 du Heap?

Créé 10/07/2011 à 10:53
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
0

Pour vous ajouter mettez la nouvelle valeur en dernier (droit à 20 dans votre exemple), et vous essayez de fixer le tas, qui est le comparer avec ses parents, si elle est plus le swap et comparer jusqu'à ce qu'aucun échange est nécessaire ( ou vous obtenez à la racine)

Afin de vous supprimer de supprimer vous remplacez le dernier objet (15 en vous par exemple) et fixer vers le bas le tas.

Créé 10/07/2011 à 11:05
source utilisateur

voix
1

Si vous supprimez 85 et le remplacer par 15, vous tournez le dos semi-tas en tas par downheaping, à savoir le 15 à la racine va « couler » le long du chemin des enfants plus grands. Dans ce cas, il échangera avec 70 puis 65.

Edit: parce que nous sommes toujours avec swapping l'enfant plus grand, il assure nous retrouver avec un tas valide (par exemple, si nous avons échangé nos 15 avec 55 au lieu de 70, nous aurions 70 comme un enfant de 55 ans qui est pas bon)

Créé 10/07/2011 à 11:08
source utilisateur

voix
4

Comme vous il swapping toujours avec la plus grande des deux (ce qui signifie propriété tas que le parent est toujours plus grand que ses enfants):

            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
Créé 10/07/2011 à 11:09
source utilisateur

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