ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Σχετικά έγγραφα
ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Διάλεξη 18: B-Δένδρα

Διάλεξη 24: B-Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διδάσκων: Κωνσταντίνος Κώστα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Διδάσκων: Παναγιώτης Ανδρέου

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ

υαδικά έντρα Αναζήτησης

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

Αλγόριθµοι και Πολυπλοκότητα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Εργασία 3 Σκελετοί Λύσεων

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Κεφάλαιο 7 Λεξικά και Δυαδικά Δένδρα Αναζήτησης

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ελάχιστα Γεννητορικά ένδρα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Δεδομένων και Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Δέντρα

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Ενότητα 7 Ουρές Προτεραιότητας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Ισοζυγισµένο έντρο (AVL Tree)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Insert(K,I,S) Delete(K,S)

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Πληροφορική 2. Δομές δεδομένων και αρχείων

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Κεφ.11: Ευρετήρια και Κατακερματισμός

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

υαδικά δέντρα αναζήτησης

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ουρά Προτεραιότητας (priority queue)

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Διδάσκων: Παναγιώτης Ανδρέου

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εκτενείς Δομές Δεδομένων

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Transcript:

B- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 ένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-1

2-3 ένδρα Γενίκευση των δυαδικών δένδρων αναζήτησης. Ορισµός: Κάθε κόµβος περιέχει ένα ή δύο κλειδιά. Ένας εσωτερικός κόµβος uµε ένα κλειδί, k 1 έχει δύο παιδιά (υπόδενδρα): το αριστερό, u.left, το οποίο περιέχει κλειδιά < k 1, και το µεσαίο, u.center, το οποίο περιέχει κλειδιά > k 1. Ένας εσωτερικός κόµβος uµε δύο κλειδιά, k 1 < k 2, έχει τρία παιδιά, το αριστερό, u.left, το µεσαίο, u.center, και το δεξί, u.right. Όλα τα κλειδιά του υποδένδρου u.left είναι < k 1, όλα τα κλειδιά του u.center είναι > k 1 και < k 2 και όλα τα κλειδιά του u.right είναι > k 2. Όλα τα φύλλα βρίσκονται στο ίδιο επίπεδο. k 1 < k 1 > k 1 k k 1 2 > k < k 2 1 k 1 < x< k 2 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-2

Παράδειγµα 2-3 ένδρου 18 33 12 23 30 48 10 15 45 47 50 52 20 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-3

Υλοποίηση 2-3 ένδρων Ένας κόµβος 2-3 ένδρου µπορεί να παρασταθεί ως µια εγγραφή µε 6 πεδία: 1. numkeys, τύπου int, που δηλώνει τον αριθµό των κλειδιών που περιέχει ο κόµβος, 2. key1, όπου αποθηκεύεται το πρώτο κλειδί, 3. key2, όπου αποθηκεύεται το δεύτερο κλειδί, αν υπάρχει, 4. left, τύπου δείκτη, που δείχνει στο αριστερό παιδί του κόµβου, 5. center, τύπου δείκτη, που δείχνει στο µεσαίο παιδί του κόµβου, 6. right, τύπου δείκτη, που δείχνει στο δεξί παιδί του κόµβου αν υπάρχει. Ένα δένδρο αναπαρίσταται ως ένας δείκτης σε κόµβο 2-3 δένδρου (που δείχνει στη ρίζα) και επιτρέπει τις πράξεις εισαγωγής, διαγραφή και αναζήτησης. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-4

Ιδιότητες 2-3 δένδρου Αν Ν(h) είναι ο µικρότερος αριθµός κλειδιών ενός 2-3 δένδρου ύψους h, τότε Ν(0) = 1, Ν(h) = 1 + 2 N(h-1) Αν M(h) είναι ο µεγαλύτερος αριθµός κλειδιών ενός 2-3 δένδρου ύψους h, τότε M(0) = 2, M(h) = 2 + 3 M(h-1) Ο αριθµός κλειδιών ενός 2-3 δένδρου ύψους h είναι το πολύ 3 h+1 1 και το λιγότερο 2 h+1 1. Εποµένως, το ύψος ενός 2-3 δένδρου µε n κόµβους είναι O(log n). Η διαδικασία εύρεσης στοιχείου σε ένα 2-3 δένδρο είναι εύκολη (παρόµοια µε αυτή ενός Α). Ο χρόνος εκτέλεσης της είναι τάξης. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-5

Εισαγωγή κόµβου Για την εισαγωγή κλειδιού k σε ένα 2-3 ένδρο ακολουθούµε το µονοπάτι από τη ρίζα του δένδρου µέχρι το κατάλληλο φύλλο u. Υπάρχουν δύο περιπτώσεις 1. Αν ο u περιέχει µόνο 1 κλειδί, τότε προσθέτουµε το k στον u. 2. Αν ο u περιέχει 2 κλειδιά έστω k 1 και k 2, τότε δηµιουργούµε ένα καινούριο κόµβο v, και διαµοιράζουµε τα κλειδιά του u, και το καινούριο κλειδί k έτσι ώστε: ο u να πάρει το µικρότερο των κλειδιών και ο v το µεγαλύτερο. Ο δείκτης προς τον v και το µεσαίο κλειδί, m, µεταβιβάζεται στον πατέρα w του u. Αν ο w έχει µόνο ένα κλειδί, τότε προσθέτουµε το ζεύγος (m,v) στον κόµβο w. ιαφορετικά, δηµιουργούµε ένα καινούριο κόµβο και επαναλαµβάνουµε το βήµα 2. Αυτή η διαδικασία µπορεί να συνεχιστεί µέχρι τη ρίζα του δένδρου µε αποτέλεσµα τη διάσπαση της ρίζας και την αύξηση του ύψους του δένδρου κατά 1. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-6

Αναλυτική Περιγραφή Φάση 1 Ξεκινώντας από τη ρίζα, εφάρµοσε τον πιο κάτω αλγόριθµο σε κάθε κόµβο uµέχρι να φτάσεις σε κάποιο φύλλο, καταγράφοντας τη διαδροµή που ακολούθησες: Αν u.numkeys = 1, τότε αν k<u.key1 τότε προχώρα στον κόµβο u.left αν k>u.key1 τότε προχώρα στον κόµβο u.center αν k=u.key1 τότε σταµάτα. Αν u.numkeys = 2, τότε αν k<u.key1 τότε προχώρα στον κόµβο u.left αν k>u.key2 τότε προχώρα στον κόµβο u.right αν u.key1 < k < u.key2 τότε προχώρα στον κόµβο u.center. διαφορετικά, σταµάτα. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-7

Τρέχον παράδειγµα εισαγωγή του 19 (1) Ξεκινώντας από τη ρίζα, p 0, ακολουθούµε και καταγράφουµε τη διαδροµή p 0, p 2, p 4. 18 33 p 0 p 1 p 2 p 3 12 23 30 48 p 4 p5 p 6 10 15 45 47 50 52 20 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-8

Φάση 2(α) Περίπτωση Φύλλου Έστω ότι προσθέτουµε το κλειδί k στο φύλλο u. Αν u.numkeys = 1, k 1 = u.key1, τότε u.key1 = min (k 1, k), u.key2 = max (k 1, k), u.numkeys = 2 Αν u.numkeys = 2, k 1 = u.key1, k 2 =u.key2, τότε u.key1 = min (k 1, k 2, k), u.numkeys = 1, p = (NODE *)malloc(sizeof(node)), p.numkeys = 1, p.key1 = max(k 1, k 2,k). προχώρα στη φάση 2(β) µε παραµέτρους p, mid(k 1, k 2,k) ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-9

Τρέχον παράδειγµα εισαγωγή του 19 (2) 18 33 p 0 p 1 p 2 p 3 12 23 30 48 p 4 p5 p 6 10 15 45 47 50 52 19 21 q 1 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-10

Φάση 2(β) Περίπτωση Εσωτερικού κόµβου Έστω ότι προσθέτουµε το κλειδί k και τον δείκτη p στον κόµβο u. Αν u.numkeys = 1, k 1 = u.key1, τότε αν k > k 1, u.key2 = k, u.right = p, αν k < k 1, u.key1 = k, u.key2 = k 1, u.right = u.center, u.center = p. u.nunkeys = 2. Αν u.numkeys = 2, k 1 = u.key1, k 2 = u.key2, u.left = p 1, u.center = p 2, u.right = p 3, τότε υπάρχουν 3 περιπτώσεις που εξαρτώνται από τη σχέση των κλειδιών k, k 1, k 2. Aς ασχοληθούµε µε την περίπτωση k < k 1 (οι άλλες δύο είναι παρόµοιες). Τότε u.key1 = k, u.center = p, u.numkeys = 1, q= (NODE *)malloc(sizeof(node)), q.numkeys = 1, q.key1 = k 2, q.left = p2, q.center = p3. αν ο u είναι η ρίζα τότε προχώρα στη φάση 3, διαφορετικά επανάλαβε τη φάση 2(β) µε παραµέτρους (q, k 1 ) στον πατέρα του u. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-11

Τρέχον παράδειγµα εισαγωγή του 19 (3) Εισαγωγή του ζεύγους (20,q 1 ) στον κόµβο p 2. 18 33 p 0 p 1 p 2 p 3 q 2 12 20 30 48 p 4 p5 p 6 10 15 q 1 45 47 50 52 19 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-12

Τρέχον παράδειγµα εισαγωγή του 19 (4) Εισαγωγή του ζεύγους (23,q 2 ) στον κόµβο p 0. p 0 18 33 q 3 p 1 p 2 q 2 p 3 12 20 30 48 p 4 p5 p 6 10 15 q 1 45 47 50 52 19 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-13

Φάση 3: Νέα ρίζα Αν η ρίζα r διασπαστεί και ζητήσει την εισαγωγή ζεύγους (p,k) στον ανύπαρκτο πρόγονο της στο δένδρο, τότε ηµιούργησε ένα καινούριο κόµβο vµε ένα κλειδί k και v.left = r, v.center = p. O καινούριος κόµβος v θα είναι η νέα ρίζα του δένδρου. Έτσι, στο παράδειγµα, εισαγωγή του (q 3, 23) έχει σαν αποτέλεσµα: Root 23 p 0 18 q 3 33 p 1 p 2 q 2 p 3 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-14

Εισαγωγή του κλειδιού 14 18 33 12 23 30 48 10 15 15 45 47 50 52 14 20 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-15

Εισαγωγή του κλειδιού 55 18 33 12 23 30 48 52 10 14 15 45 47 50 55 20 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-16

Εισαγωγή του κλειδιού 19 23 18 33 12 20 30 48 52 10 14 15 45 47 50 55 19 21 24 31 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-17

ιαδικασία Εισαγωγής Κόµβου Ηαναδροµική διαδικασία εισαγωγής κόµβου, παίρνει παραµέτρους: 1. το δείκτη στον κόµβο όπου θα γίνει η εισαγωγή, 2. το κλειδί που θέλουµε να προσθέσουµε (κατά την κάθοδο στο δένδρο), 3. το ζεύγος (δείκτη σε παιδί, κλειδί) που θέλουµε να προσθέσουµε (κατά την άνοδο στο δένδρο), και Η διαδικασία εξαγωγής κλειδιών χρησιµοποιεί παρόµοιες ιδέες. Σ αυτή όµως την περίπτωση, αντί διάσπαση κόµβου έχουµε συγχώνευση κόµβων. Όλες οι διαδικασίες έχουν χρόνο εκτέλεσης ανάλογο µε το ύψος του δένδρου. Άρα είναι τάξης Θ(log n). ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-18

Παραλλαγή Οι πληροφορίες αποθηκεύονται µόνο στα φύλλα. Τα κλειδιά εσωτερικών κόµβων χρησιµεύουν µόνο για την αναζήτηση στο δένδρο. ηλαδή, για κάποιο κόµβο u, το u.key1 δηλώνει το µικρότερο κλειδί σε φύλλο του u.center, και το u.key2 (αν υπάρχει) δηλώνει το µικρότερο κλειδί σε φύλλο του u.right. 18 16 25 32 9 12 16 17 18 22 25 27 32 39 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-19

Β-δένδρα Γενίκευση του 2-3 δένδρου: µπορεί να αποθηκεύει περισσότερα από 2 κλειδιά σε κάθε κόµβο. Ένα δένδρο τάξης m ικανοποιεί τις πιο κάτω ιδιότητες: Έχει µια ρίζα η οποία είτε είναι φύλλο, είτε έχει 2 µέχρι m παιδιά. Όλοι οι εσωτερικοί κόµβοι (εκτός τη ρίζα) έχουν από m/2 µέχρι m παιδιά. Όλα τα φύλλα βρίσκονται στο ίδιο επίπεδο. Τα δεδοµένα φυλάσσονται στα φύλλα. Κάθε φύλλο περιέχει από m/2 µέχρι m κλειδιά. Ένας εσωτερικός κόµβός µε δείκτες p 0, p 1,, p n, έχει κλειδιά k 1,,k n, όπου k i είναι το µικρότερο κλειδί του υποδένδρου που δείχνεται από τον δείκτη p i. Ένα 2-3 δένδρο, είναι Β-δένδρο, τάξης 3. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-20

ΠαράδειγµαΒ-δένδρου τάξης 4 18 3 8 25 32 43 1 2 3 4 5 7 8 12 18 22 23 25 27 32 39 43 47 ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-21

Ένα Β-δένδρο τάξης mµε n κλειδιά έχει ύψος O(logm n ) Έχει διαδικασίες παρόµοιες µε αυτές ενός 2-3 δένδρου, οι οποίες επίσης µπορεί να προκαλέσουν διάσπαση ή συγχώνευση της ρίζας. Έχει το πλεονέκτηµα έναντι των 2-3 δένδρων Έχει το µειονέκτηµα Το κόστος των διαδικασιών είναι ανάλογο του (ύψος του δένδρου) (κόστος επεξεργασίας ενός κόµβου) Το κόστος επεξεργασίας ενός κόµβου Ο(m) µπορεί να γίνει O(log m) αν κάθε κόµβος οργανωθεί ως AVL-δένδρο. Σε βάσεις δεδοµένων οι κόµβοι αποθηκεύονται σε δευτερεύουσα µνήµη του υπολογιστή. Το κόστος πρόσβασης ενός κόµβου είναι πολύ µεγαλύτερο απ αυτό της επεξεργασίας του. Η τιµή του m επιλέγεται βάσει του πόσοι δείκτες µπορούν να αποθηκευτούν σε ένα καταχώρηµα (block) µνήµης. ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-22