Middle
Τι κάνει το heap push και πώς προσθέτει ένα στοιχείο στη στοίβα;
sobes.tech AI
Απάντηση από AI
Heap push — είναι μια λειτουργία προσθήκης ενός νέου στοιχείου στη δομή δεδομένων «στοίβα» (heap), η οποία διατηρεί τις ιδιότητες της στοίβας (π.χ., ελάχιστο ή μέγιστο).
Πώς γίνεται η προσθήκη:
- Το νέο στοιχείο τοποθετείται στο τέλος του πίνακα που αντιπροσωπεύει τη στοίβα.
- Στη συνέχεια, εκτελείται η λειτουργία "ανύψωσης" (sift-up ή bubble-up): το στοιχείο συγκρίνεται με τον γονέα του, και αν παραβιάζεται η ιδιότητα της στοίβας (π.χ., σε μια ελάχιστη στοίβα, αν το στοιχείο είναι μικρότερο από τον γονέα), τα στοιχεία ανταλλάσσονται.
- Αυτή η διαδικασία επαναλαμβάνεται μέχρι το στοιχείο να βρεθεί στη σωστή θέση, αποκαθιστώντας τις ιδιότητες της στοίβας.
Έτσι, το heap push διασφαλίζει την προσθήκη ενός στοιχείου διατηρώντας την τάξη της στοίβας, επιτρέποντας την αποτελεσματική εξαγωγή του ελάχιστου ή μέγιστου στοιχείου.
Παράδειγμα σε Python με το module heapq:
import heapq
heap = [1, 3, 5, 7]
heapq.heapify(heap) # Μετατρέπει τη λίστα σε στοίβα
heapq.heappush(heap, 2) # Προσθέτει το στοιχείο 2
print(heap) # Στοίβα με διατηρημένη σειρά
Ως αποτέλεσμα, το στοιχείο 2 θα προστεθεί και θα "ανυψωθεί" προς τα πάνω, διατηρώντας τις ιδιότητες της ελάχιστης στοίβας.