Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Δένδρο-σωρός Ένα δένδρο-σωρός ή απλώς σωρός είναι ένα πλήρες δυαδικό δένδρο με διατεταγμένους τους κόμβους του έτσι, ώστε η τιμή του στοιχείου κάθε κόμβου.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Δένδρο-σωρός Ένα δένδρο-σωρός ή απλώς σωρός είναι ένα πλήρες δυαδικό δένδρο με διατεταγμένους τους κόμβους του έτσι, ώστε η τιμή του στοιχείου κάθε κόμβου."— Μεταγράφημα παρουσίασης:

1 Δένδρο-σωρός Ένα δένδρο-σωρός ή απλώς σωρός είναι ένα πλήρες δυαδικό δένδρο με διατεταγμένους τους κόμβους του έτσι, ώστε η τιμή του στοιχείου κάθε κόμβου να είναι μεγαλύτερη ή ίση από τις τιμές των στοιχείων των παιδιών του.

2 Ελέγξτε αν το παρακάτω δένδρο είναι ένα δένδρο-σωρός και δώστε την συνεχόμενη αναπαράστασή του

3 Απάντηση (1) Το δοθέν δένδρο είναι σωρός, διότι είναι δυαδικό δένδρο,
είναι πλήρες δένδρο, διότι όλα τα επίπεδα, πλην του τελευταίου, έχουν τον μέγιστο αριθμό κόμβων και όλοι οι τερματικοί κόμβοι (τελευταίο επίπεδο) είναι τοποθετημένοι όσο το δυνατόν προς τα αριστερά η τιμή του στοιχείου κάθε κόμβου είναι μεγαλύτερη από τις τιμές των στοιχείων των παιδιών του.

4 Απάντηση (2) Η συνεχόμενη αναπαράσταση του σωρού αντικατοπτρίζεται στον παρακάτω πίνακα. 93 84 73 69 74 38 52 13 51 12 48 20 Η 1 2 3 4 5 6 7 8 9 10 11 14 15

5 Αναπαράσταση με Πίνακα
Για τον κόμβο που είναι στη θέση A[i], Αριστερό παιδί στη θέση A[2i] Δεξιό παιδί στη θέση A[2i+1] Γονέας στη θέση A[i/2] Και τα τρία τα βρίσκουμε σε χρόνο O(1)

6 Εισαγωγή ενός στοιχείου
Τοποθετούμε το προς εισαγωγή στοιχείο (κόμβο) στο τέλος του δένδρου έτσι ώστε να εξακολουθεί να είναι ένα πλήρες δένδρο, αλλά όχι απαραίτητα και σωρός. Μετακινούμε το στοιχείο (κόμβο) προς τη ρίζα του δένδρου και το τοποθετούμε σε θέση που να δημιουργείται σωρός, δηλαδή ο γονέας του να έχει μεγαλύτερη τιμή.

7 Παράδειγμα

8 Ποίες αλλαγές γίνονται στο δένδρο κατά τη διαδικασία της εισαγωγής του στοιχείου ‘75’;

9 Διαγραφή Κρατάμε τη ρίζα σε μια μεταβλητή,
αντικαθιστούμε τη ρίζα με τον τελευταίο στοιχείο (κόμβο) του δένδρου, έτσι ώστε το δένδρο να παραμείνει πλήρες, όχι όμως απαραίτητα σωρός, Μετακινούμε το στοιχείο (κόμβο) προς τα κάτω μέχρις ότου τοποθετηθεί στην κατάλληλη θέση, έτσι ώστε να δημιουργηθεί σωρός.

10 Παράδειγμα

11 Σωρός Ελαχίστων 1 4 3 15 7 10 9 17 19 8 Η τιμή του στοιχείου κάθε κόμβου είναι μικρότερη ή ίση από τις τιμές των στοιχείων των παιδιών του.

12 Εισάγουμε το 0 1 3 5 7 6 9 8

13 Τοποθετούμε το 0 στην τελευταία θέση του σωρού.
1 3 5 7 6 9 8

14 Ανταλλαγή 7  0 1 3 5 6 9 8 7

15 Ανταλλαγή 5  0 1 3 5 6 9 8 7

16 Ανταλλαγή 1  0 3 1 5 6 9 8 7

17 Κόστος Εισαγωγής Για την αναδιάρθρωση του σωρού δεν απαιτείται πάντα να φτάσουμε μέχρι τη ρίζα. Απαιτούμενο κόστος: O(log n) αφού το ύψος του σωρού που έχει n στοιχεία είναι O(log n)

18 Διαγραφή της Κορυφής Ακολουθούμε την ακόλουθη μέθοδο:
Διαγράφουμε το στοιχείο στην κορυφή και το αντικαθιστούμε με το τελευταίο στοιχείο του σωρού. Ακολουθεί αναδιάρθρωση του σωρού εάν απαιτείται.

19 Διαγραφή του 0 3 1 6 5 9 8

20 Διαγραφή του 0 3 1 6 5 9 8

21 Αντικατάσταση με το τελευταίο στοιχείο (8)
3 1 6 5 9

22 Διαγραφή του τελευταίου κόμβου που είναι άδειος.
8 3 1 6 5 9

23 Ανταλλαγή 81 1 3 8 6 5 9

24 Ανταλλαγή 85 1 3 5 6 8 9


Κατέβασμα ppt "Δένδρο-σωρός Ένα δένδρο-σωρός ή απλώς σωρός είναι ένα πλήρες δυαδικό δένδρο με διατεταγμένους τους κόμβους του έτσι, ώστε η τιμή του στοιχείου κάθε κόμβου."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google