ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ
|
|
- Ἀντίπας Μακρής
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ
2 ενδρικές οµές για Υλοποίηση υναµικών Λεξικών υναµικά λεξικά λειτουργίες LookUp( ), Insert( ) και Delete( ) Αναζητούµε δένδρα για την αποτελεσµατική υλοποίηση δυναµικών λεξικών δηλ., να υποστηρίζουν τις λειτουργίες LookUp(), Insert() και Delete() σε χρόνο O(logn). Θα δούµε δένδρα AVL κοκκινό-µαυρα δένδρα 2-3 δένδρα, Β-δένδρα splay (αρθρωτά) δένδρα (επίσης, εξαρθρωµένα) Γενικά: δένδρα ισοζυγισµένα καθ ύψος δένδρα ισοζυγισµένα κατά βάρος δένδρα ελάττωσης εσωτερικού µονοπατιού 2
3 ένδρα AVL υαδικά δένδρα Για κάθε κόµβο (v: δείκτης στον κόµβο), ορίζουµε LeftHeight(v) = 0, αν v->left = NULL, LeftHeight(v) = 1 + Height(v->left), διαφορετικά. όπου Height(w) το ύψος του υποδένδρου µε ρίζα τον w. Το RightHeight(v) ορίζεται αντίστοιχα. Το ισοζύγιο (balance) κόµβου v είναι balance(v) = RightHeight(v) LeftHeight(v) Για το δένδρο Τ (µε δείκτη r στη ρίζα): LeftHeight(T) = LeftHeight(r) RightHeight(T) = RightHeight(r) 3
4 ένδρα AVL ένδρο AVL δυαδικό δένδρο αναζήτησης και κάθε κόµβος του έχει balance = 0, 1, ή +1. Τα δένδρα των περιπτώσεων (a), (b), (c) είναι δένδρα AVL, ενώ αυτά των περιπτώσεων (d), (e) δεν είναι. 4
5 Χαρακτηριστικά ένδρων AVL Κάθε δένδρο AVL είναι δυαδικό δένδρο αναζήτησης και έχει ύψος O(log n), όπου n το πλήθος κόµβων του δένδρου. Τι σηµαίνει αυτό για την πολυπλοκότητα της LookUp()? Ένας κόµβος µπορεί να προστεθεί σε ή να αφαιρεθεί από ένα δένδρο AVL χωρίς να καταστραφεί η AVL ιδιότητα (ιδιότητα ισοζυγισµού καθ ύψος) σε χρόνο O(log n). Αναπαράσταση Κάθε κόµβος είναι µια δοµή µε πεδία: key, data, left, right, balance Πόσο χώρο στη µνήµη χρειαζόµαστε για να αποθηκεύσουµε το balance? 5
6 Εισαγωγές κόµβων σε δένδρο AVL Πως µπορούµε να υλοποιήσουµε την Insert()?Που διαφέρει από την Insert() σε δυαδικό δένδρο αναζήτησης? Ακολουθώντας τη γνωστή µέθοδο εισαγωγής σε δένδρο δυαδικής αναζήτησης: βρες το µονοπάτι από τη ρίζα στο κατάλληλο φύλλο στο οποίο θα γίνει η εισαγωγή. Αποθήκευσε αυτό το µονοπάτι (ανεστραµµένο). Ακολούθησε αυτό το µονοπάτι από κάτω προς τα επάνω υπολογίζοντας το νέο balance των κόµβων του µονοπατιού αυτού. Αν το balance κάποιου κόµβου αλλάζει σε +2 ή σε 2, ακολούθησε διαδικασία τροποποίησης του δένδρου ώστε να επανέλθει σε ισχύ η AVL ιδιότητα: εκτέλεσε περιστροφές. 6
7 Εισαγωγές κόµβων σε δένδρο AVL Παράδειγµα Η απλή περίπτωση: (b) Εισαγωγή στο δένδρο AVL της περίπτωσης (a) (d) Εισαγωγή στο δένδρο AVL της περίπτωσης (c) 7
8 Εισαγωγές κόµβων σε δένδρο AVL Απλή Αριστερή Περιστροφή, RR (Single Left Rotation) Γιατί να µην ανταλλάξουµε το υποδένδρο Τ1 µε το υποδένδρο Τ3 για να επιλύσουµε το πρόβληµα? Ποια είναι η συµµετρική περίπτωση (Απλή εξιά Περιστροφή, LL)? Πολυπλοκότητα Χρόνου? 8
9 Εισαγωγές κόµβων σε δένδρο AVL Απλή εξιά Περιστροφή, LL (Single Right Rotation) Προσοχή: Τα L και R σχετίζονται µε το που βρίσκεται το υποδένδρο όπου έχει γίνει η εισαγωγή σε σχέση µε τον κόµβο όπου εµφανίζεται η έλλειψη ισορροπίας. Οι περιστροφές LL και RR γίνονται όταν παρουσιαστεί εξωτερική έλλειψη ισορροπίας. 9
10 Εισαγωγές κόµβων σε δένδρο AVL ιπλή περιστροφή RL (Double Rotation RL) RL = Right-Left Υπάρχει επίσης η συµµετρική ιπλή Περιστροφή LR (Left-Right). Οι διπλές περιστροφές (RL, LR) απαιτούνται για εσωτερική έλλειψη ισορροπίας. 10
11 Εισαγωγές κόµβων σε δένδρο AVL Παράδειγµα: ιαδοχικές εισαγωγές των κλειδιών 90, 71, 10, 4, 12, 5, 19, 52 και 56 σε αρχικά κενό δένδρο AVL. 11
12 Κρίσιµος Κόµβος (Critical Node) Κρίσιµος Κόµβος ο χαµηλότερος κόµβος µε balance +1 ή 1 στο µονοπάτι που θα ακολουθήσουµε από τη ρίζα για την εισαγωγή του νέου κόµβου Στο µονοπάτι αυτό: Κάθε κόµβος χαµηλότερα από τον κρίσιµο κόµβο είχε balance 0. Άρα, θα έχει balance +1 ή 1 µετά την εισαγωγή. Τι καθορίζει το αν κάποιος τέτοιος κόµβος θα έχει balance +1 ή 1? Ο κρίσιµος κόµβος µετά την εισαγωγή έχει balance ίσο µε 0 ή +2 ή 2. Γιατί? Πότε το balance γίνεται 0, πότε +2 και πότε 2? Το balance των κόµβων ψηλότερα από τον κρίσιµο κόµβο δεν αλλάζει γιατί το ύψος του κρίσιµου κόµβου είναι το ίδιο πριν και µετά την εισαγωγή (µε ή χωρις περιστροφή). Γιατί? Άρα, µόνον οι κόµβοι από τον κρίσιµο κόµβο και χαµηλότερα χρειάζεται να ελεγχθούν για αλλαγές στο balance τους. Σηµείωση: Ο κρίσιµος κόµβος είναι σηµαντικός για την αποτελεσµατική υλοποίηση της διαδικασίας εισαγωγής σε δένδρο AVL. 12
13 Κρίσιµος Κόµβος Εάν γίνει περιστροφή, αυτή σχετίζεται µε τον κρίσιµο κόµβο και µπορεί να είναι: µια απλή περιστροφή µεταξύ του κρίσιµου κόµβου και του κόµβου-παιδιού του στο µονοπάτι που ακολουθήθηκε για την εισαγωγή µια διπλή περιστροφή µεταξύ του κρίσιµου κόµβου, του κόµβου-παιδιού του και του κόµβουεγγονού του στο µονοπάτι για την εισαγωγή Σε τι µας βοηθάει η παρατήρηση αυτή? Καθώς ο αλγόριθµος κατεβαίνει προς το ζητούµενο φύλλο, αρκεί να θυµάται µόνο τον τελευταίο κρίσιµο κόµβο. Μετά την εισαγωγή, ξεκινώντας από τον κρίσιµο κόµβο ακολούθησε και πάλι το ίδιο µονοπάτι προς τον κόµβο που εισήχθη και διόρθωσε τα balances. Τέλος, αν χρειάζεται κάνε τις περιστροφές. Γιατί µπορούµε να βρούµε και πάλι αυτό το µονοπάτι? Πως διορθώνουµε τα balances? Ποια είναι η πολυπλοκότητα χρόνου της Insert()? 13
14 ιαγραφές κόµβων σε δένδρο AVL Αρχικά, εφαρµόζουµε τον αλγόριθµο διαγραφής σε δυαδικό δένδρο αναζήτησης: 1) διαγραφή του ίδιου του κόµβου v αν είναι φύλλο, 2) αντικατάστασή του από το παιδί του αν έχει µόνο ένα παιδί, 3) αντικατάστασή του από τον επόµενό του στην ενδοδιατεταγµένη διάταξη αν έχει 2 παιδιά. Κατόπιν, ελέγχουµε τις τιµές του balance: το balance του κόµβου-γονέα του κόµβου που διαγράφεται (διαγράφεται ο v ή ο επόµενος του v στην ενδο-διατεταγµένη διάσχιση) αλλάζει. (a) Αρχικό δένδρο, (b)-(e) διαγραφές Β,F,M,R 14
15 ιαγραφές κόµβων σε δένδρο AVL Αν το balance του κόµβου-γονέα w του κόµβου που διαγράφεται (του v ή του επόµενού του στην ενδοδιατεταγµένη διάσχιση) αλλάζει από 0 σε +1 ή σε 1, τότε ο αλγόριθµος τερµατίζει. από +1 ή 1 σε 0, το ύψος του w µειώνεται και άρα και το balance άλλων προγόνων του v ενδεχοµένως αλλάζει. από +1 ή 1 σε +2 ή 2, τότε γίνεται µία ή περισσότερες περιστροφές. Στη χειρότερη περίπτωση, µπορεί να χρειαστεί να γίνουν περιστροφές σε όλους τους κόµβους στο µονοπάτι από τον κόµβο w έως τη ρίζα. Το είδος των περιστροφών εξαρτάται από τις δύο πρώτες ακµές του µονοπατιού που καθορίζει το ύψος του εκάστοτε κόµβου µε balance +2 ή -2. Ποια είναι η πολυπλοκότητα χρόνου της υλοποίησης της Delete()? Ολόκληρο το µονοπάτι πρέπει να αποθηκευτεί και να ακολουθηθεί από τον κόµβο w προς τη ρίζα µέχρι να βρεθεί κάποιος κόµβος µε balance 0. Το balance του κόµβου αυτού γίνεται +1 ή 1, αλλά το ύψος του δεν αλλάζει, και από εκεί και µετά, το balance των κόµβων έως τη ρίζα δεν αλλάζει. 15
16 ιαγραφές κόµβων σε δένδρο AVL Αρχικό δένδρο 19 ιαγραφή του ιαγραφή του ιαγραφή του ιαγραφή του ιαγραφή του ιαγραφή του 5 52 ιαγραφή του
17 Παράδειγµα ιαγραφής που Οδηγεί σε Πολλαπλές Περιστροφές 17
18 Κοκκινόµαυρα ένδρα (Red-Black Trees) Κοκκινόµαυρο δένδρο δυαδικό δένδρο αναζήτησης κάθε κόµβος: κόκκινο χρώµα ή µαύρο χρώµα. Θα θεωρήσουµε τους δείκτες NULL ως δείκτες σε εξωτερικούς NIL κόµβους (φύλλα) του δυαδικού δένδρου και τους κανονικούς κόµβους που αποθηκεύουν κλειδιά ως εσωτερικούς κόµβους του δένδρου. (Αυτή η υπόθεση βοηθά στον περιορισµό των περιπτώσεων.) Ένα κοκκινόµαυρο δένδρο πληροί τις ακόλουθες ιδιότητες: Κάθε κόµβος έχει είτε κόκκινο είτε µαύρο χρώµα. Ο κόµβος-ρίζα και κάθε NIL κόµβος έχει µαύρο χρώµα. Κάθε απλή διαδροµή από έναν κόµβο σε έναν NIL κόµβο που είναι απόγονός του περιέχει το ίδιο πλήθος µαύρων κόµβων. Αν ένας κόµβος έχει κόκκινο χρώµα, τότε και τα δύο παιδιά του έχουν µαύρο χρώµα. 18
19 Παράδειγµα Κοκκινό-µαυρου ένδρου οµή πεδία key : η καταχωρηµένη τιµή color : το bit χρώµατος left, right : δείκτες στα παιδιά p : δείκτης στον κόµβο-γονέα 19
20 Μέγεθος Κοκκινό-µαυρων ένδρων Πρόταση: Ένα κοκκινόµαυρο δένδρο µε n εσωτερικούς κόµβους έχει ύψος 2 log(n+1). ιαίσθηση: Σε κάθε µονοπάτι από τη ρίζα σε φύλλο, τουλάχιστον οι µισοί κόµβοι έχουν µαύρο χρώµα. Γιατί; Απόδειξη µαύρο ύψος bh(v) κόµβου v: το πλήθος µαύρων κόµβων σε κάθε µονοπάτι από τον κόµβο v σε οποιοδήποτε φύλλο-απόγονο, χωρίς να συµπεριλάβουµε τον v. Με επαγωγή ως προς το ύψος κόµβου v, αποδεικνύουµε ότι το υπο-δένδρο µε ρίζα τον v περιέχει τουλάχιστον 2 bh(v) -1 εσωτερικούς κόµβους. Βάση επαγωγής: ο v έχει ύψος 0, τότε είναι φύλλο (NIL κόµβος) πλήθος εσωτερικών κόµβων στο υποδένδρο του v είναι 0. Επαγωγικό βήµα: οθέντος ενός κόµβου v, υποθέτουµε ότι ο ισχυρισµός ισχύει για τα παιδιά του v και τον αποδεικνύουµε για τον v. Έστω h το ύψος του δένδρου και r η ρίζα. Τότε bh(r) h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα χρόνου? 20
21 Εισαγωγή σε Κοκκινό-µαυρο ένδρο Αλγόριθµος Εισαγωγή όπως σε δυαδικό δένδρο αναζήτησης. Ο νέος κόµβος που εισάγεται χρωµατίζεται µε κόκκινο χρώµα. Εξετάζουµε αν οι ιδιότητες χρωµατισµού εξακολουθούν να ισχύουν. Αν ναι τερµατίζουµε, διαφορετικά διορθώνουµε (στη 2 η περίπτωση: πατέρας έχει κόκκινο χρώµα, παππούς µαύρο). ιακρίνουµε περιπτώσεις. Για απλότητα, υποθέτουµε ότι ο πατέρας του x είναι αριστερό παιδί του πατέρα του (εργαζόµαστε συµµετρικά εάν είναι δεξί παιδί). Περίπτωση 1: Ο θείος (κόµβος-αδελφός του πατέρα) έχει κόκκινο χρώµα: αλλάζουµε το χρώµα του πατέρα και του θείου σε µαύρο και το χρώµα του παππού σε κόκκινο. Επαναλαµβάνουµε από τον κόµβο-παππού. 21
22 Εισαγωγή σε Κοκκινό-µαυρο ένδρο Αλγόριθµος (συνέχεια) Περίπτωση 2: Ο θείος έχει µαύρο χρώµα και ο x είναι δεξί παιδί του πατέρα του: ανάγουµε την περίπτωση αυτή στην περίπτωση 3 µε την εκτέλεση µιας αριστερής περιστροφής (x και πατέρας του). Περίπτωση 3: Ο θείος έχει µαύρο χρώµα και ο x είναι αριστερό παιδί του πατέρα του. Το χρώµα του πατέρα του x αλλάζει σε µαύρο και του παππού σε κόκκινο & εκτελείται µια δεξιά περιστροφή (x και παππούς του). Τερµατίζουµε. Σηµείωση: Εάν (λόγω συνεχούς εφαρµογής της περίπτωσης 1) φθάσουµε στη ρίζα, την χρωµατίζουµε µε µαύρο χρώµα και σταµατάµε. Ποια είναι η πολυπλοκότητα της RB-Insert()? 22
23 Εισαγωγή σε Κόκκινο-Μαύρο ένδρο: Παράδειγµα: Εισαγωγή του 4 23
24 ιαγραφή από Κοκκινό-µαυρο ένδρο Αρχικά, διαγραφή όπως σε δυαδικό δένδρο αναζήτησης. y: ο κόµβος που θα διαγραφεί από το δένδρο y έχει το πολύ ένα παιδί. Στη συνέχεια, ελέγχουµε εάν ισχύουν οι ιδιότητες χρωµατισµού, και εάν όχι, εκτελούµε κατάλληλες ενέργειες. 1. Ο y είναι κόκκινος ή είναι µαύρος µε κόκκινο παιδί: εν υπάρχει πρόβληµα. 2. Ο y είναι µαύρος µε µαύρο παιδί: Η διαγραφή του y δηµιουργεί (τουλάχιστον) ένα µονοπάτι από τη ρίζα µε µαύρο ύψος µικρότερο κατά ένα. Υποθέτουµε ότι η µονάδα µαύρου χρώµατος του y µεταφέρεται στο παιδί του, το οποίο τώρα γίνεται διπλά µαύρο (που είναι µη επιτρεπτό). Πρέπει να µεταφέρουµε την επιπλέον µονάδα µαύρου χρώµατος προς τα επάνω στο δένδρο µέχρι: να φθάσουµε στη ρίζα ή να βρούµε έναν κατάλληλο κόκκινο κόµβο τον οποίο χρωµατίζουµε µαύρο και τερµατίζουµε ή να εκτελέσουµε κατάλληλες περιστροφές και επαναχρωµατισµούς κάποιων κόµβων ώστε να λυθεί το πρόβληµα. 24
25 ιαγραφή από Κοκκινό-µαυρο ένδρο Θεωρούµε ότι το δένδρο υλοποιείται µε κόµβο φρουρό (όλοι οι null δείκτες δείχνουν στον κόµβο φρουρό). 25
26 ιαγραφή από Κοκκινό-µαυρο ένδρο x: το (διπλά µαύρο) παιδί του κόµβου που διαγράφηκε. Έστω w ο κόµβος-αδελφός & p ο πατέρας του x. (Ο w δεν µπορεί να είναι ο κόµβος φρουρός. Γιατί;) Έστω ότι ο x είναι αριστερό παιδί του p. (Η περίπτωση που ο x είναι δεξιό παιδί του p είναι συµµετρική.) 1. Ο w έχει κόκκινο χρώµα. Αναγόµαστε στην περίπτωση 2, αλλάζοντας το χρώµα του w σε µαύρο και του p σε κόκκινο & εκτελώντας µια αριστερή περιστροφή γύρω από τον πατέρα του x (περίπτωση (α) σχήµατος). 2. Ο w έχει µαύρο χρώµα. a. Και τα δύο παιδιά του w είναι µαύρα. Αλλάζουµε το χρώµα του w σε κόκκινο, του x σε µαύρο (από διπλά µαύρο) & µεταφέρουµε το µαύρο που αφαιρέσαµε από τους w, x στον p. Αν ο p είναι κόκκινος, γίνεται µαύρος και ο αλγόριθµος τερµατίζει. ιαφορετικά, ο p γίνεται διπλά µαύρος και η διαδικασία επαναλαµβάνεται µε x = p. b. Το w->left είναι κόκκινο και το w->right µαύρο. Αλλάζουµε το χρώµα του w σε κόκκινο και του w- >left σε µαύρο & εκτελούµε περιστροφή γύρω από τον w Μεταπίπτουµε στην περίπτωση 2c. c. Το w->right είναι κόκκινο. Αλλάζουµε το χρώµα του w->right σε µαύρο, του w σε ό,τι ήταν το χρώµα του p και του p σε µαύρο & εκτελούµε περιστροφή γύρω από τον p. Ο αλγόριθµος τερµατίζει. Εάν ο x φθάσει στη ρίζα του δένδρου, αγνοούµε την επιπλέον µονάδα µαύρου χρώµατος -- τερµατισµός 26
27 ιαγραφή από Κοκκινό-µαυρο ένδρο Σηµείωση: Στο σχήµα, όπου υπάρχει η επιγραφή x, υπάρχει µία επιπλέον µονάδα µαύρου χρώµατος. Πολυπλοκότητα χρόνου της RB-Delete(): Ο(log n) Πλήθος περιστροφών ανά διαγραφή: το πολύ 3 27
28 Αρθρωτά (Splay) ένδρα (Sleator & Tarjan, 1985) υαδικά δένδρα αναζήτησης (κάθε κόµβος έχει τα πεδία: key, data, left, right) ιαφορά από δυαδικά δένδρα αναζήτησης τρόπος εκτέλεσης LookUp( ), Insert( ) και Delete( ). Αν το δένδρο έχει n στοιχεία, δεν είναι εγγυηµένο ότι οι διαδικασίες αυτές εκτελούνται σε O(log n) χρόνο. Υπάρχει όµως η εξής εγγύηση: Κάθε ακολουθία από m αναζητήσεις, εισαγωγές, διαγραφές, ξεκινώντας από άδειο δένδρο, εκτελείται σε Ο(m logn) χρόνο. ηλαδή: To κόστος καθεµίας από αυτές τις λειτουργίες κατά µέσο όρο (amortized κόστος λειτουργίας) είναι O(logn). Αυτό δεν αποκλείει να: υπάρχει εκτέλεση κάποιας λειτουργίας (στην ακολουθία) µε κόστος πολύ υψηλό, π.χ., Ω(n), αλλά αυτό συµβαίνει αφού έχουν προηγηθεί πολλές λειτουργίες µε κόστος πολύ µικρό. 28
29 Αρθρωτά ένδρα Ιδέα (παρόµοια µε το (ευρετικό) Move-To-Front) Κάθε φορά που ένα κλειδί είναι το αποτέλεσµα µιας επιτυχηµένης αναζήτησης στο δένδρο, ο κόµβος του µετακινείται στη ρίζα. Κύρια Λειτουργία Splay(K,T), όπου K κλειδί, Τ δένδρο: τροποποιεί το Τ έτσι ώστε το προκύπτον δένδρο 1. είναι επίσης δυαδικό δένδρο αναζήτησης, και 2. έχει το κλειδί Κ στη ρίζα (το Κ υπάρχει στο δένδρο). Σηµείωση: Κάποιοι συγγραφείς ακολουθούν το εξής: αν το Κ δεν υπάρχει στο δένδρο, η ρίζα περιέχει το κλειδί που είναι ο προηγούµενος (ή ο επόµενος) του Κ στην ενδοδιατεταγµένη διάσχιση του Τ. Τα δένδρα των οποίων η διαχείριση βασίζεται στη λειτουργία Splay λέγονται αρθρωτά δένδρα. 29
30 Υλοποίηση Λειτουργιών Αρθρωτών ένδρων Αναζήτηση κλειδιού Κ αναζητούµε το Κ όπως στα δυαδικά δένδρα αναζήτησης, και εάν βρεθεί, εκτελούµε τη λειτουργία Splay(K,T) ώστε ο κόµβος που περιέχει το Κ να γίνει ρίζα του δένδρου. Εισαγωγή κόµβου <K,D> (κλειδί Κ, πληροφορία D) κάνουµε εισαγωγή των Κ και D όπως ακριβώς στα δυαδικά δένδρα αναζήτησης και κατόπιν εκτελούµε τη λειτουργία Splay(K,T) ώστε ο κόµβος που περιέχει τα Κ και D να γίνει ρίζα του δένδρου. ιαγραφή κόµβου <K,D> (κλειδί Κ, πληροφορία D) κάνουµε διαγραφή των Κ και D όπως ακριβώς στα δυαδικά δένδρα αναζήτησης και κατόπιν εκτελούµε τη λειτουργία Splay(P,T), όπου P ο κόµβος-πατέρας του κόµβου <K,D>, ώστε ο κόµβος αυτός να γίνει ρίζα του δένδρου. 30
31 Υλοποίηση της Λειτουργίας Splay(Κ,Τ) Πρώτα αναζητούµε το Κ µε το γνωστό τρόπο, και αποθηκεύουµε το µονοπάτι που ακολουθήσαµε σε στοίβα. Έστω P ο τελευταίος κόµβος σε αυτό το µονοπάτι. Αν το Κ υπάρχει στο δένδρο, θα βρίσκεται στον P. Μετά την Splay, ο P θα πρέπει να βρίσκεται στη ρίζα. ιακρίνουµε περιπτώσεις: 1. Ο P δεν έχει παππού (δηλαδή, το Parent(P) είναι η ρίζα). Εκτελούµε µια απλή περιστροφή. 31
32 Υλοποίηση της Λειτουργίας Splay(Κ,Τ) (συνέχ.) 2. Ο P και ο Parent(P) είναι και οι δύο είτε αριστερά παιδιά, είτε δεξιά παιδιά. Εκτελούµε δύο απλές περιστροφές προς την ίδια κατεύθυνση, την 1 η γύρω από τον παππού του P και την 2 η γύρω από τον πατέρα του P. Προσοχή: η περιστροφή γύρω από τον παππού του P εκτελείται πρώτη. 32
33 Υλοποίηση της Λειτουργίας Splay (συνέχεια) 3. Ένας από τους P, Parent(P) είναι αριστερό παιδί και ο άλλος δεξιό παιδί. Εκτελούµε δύο απλές περιστροφές αλλά σε αντίθετες κατευθύνσεις, την 1 η γύρω από τον πατέρα του P και την 2 η γύρω από τον παππού του P. Προσοχή: η περιστροφή γύρω από τον πατέρα του P εκτελείται πρώτη. 33
34 Παράδειγµα: Splay(D,T) 34
35 ένδρα Αναζήτησης Πολλαπλής ιακλάδωσης (ή πολύ-κατευθυνόµενα δένδρα αναζήτησης ή δένδρα αναζήτησης m-δρόµων) Γενίκευση των δυαδικών δένδρων αναζήτησης. Επινοήθηκε καθώς στον τοµέα των Βάσεων εδοµένων είναι επιθυµητά δένδρα αναζήτησης µικρού ύψους. Στα δένδρα αναζήτησης πολλαπλής διακλάδωσης, έχουµε κόµβους µε: d-1 διατεταγµένα κλειδιά k 1 k d-1 και d διατεταγµένα παιδιά (ρίζες υποδένδρων A 0,, A d-1 ), για τα οποία ισχύει ότι: (κλειδιά A 0 ) k 1 k i (κλειδιά A i ) k i +1, 1 i d-2 k d-1 (κλειδιά A d-1 ) Εάν ένα δένδρο είναι m-δρόµων, τότε οι κόµβοι έχουν το πολύ m-1 κλειδιά (π.χ., το σχήµα απεικονίζει ένα δένδρο 7-δρόµων). 35
36 Αναζήτηση Αναζήτηση του κλειδιού k τρέχων κόµβος = η ρίζα του δένδρου; Όσο ο δείκτης στον τρέχοντα κόµβο NULL Αναζητούµε το k στα κλειδιά του τρέχοντος κόµβου; Εάν βρεθεί εκεί, το k υπάρχει στο δένδρο αλλιώς εάν k < k 1 του τρέχοντος κόµβου τότε τρέχων κόµβος = ρίζα A 0 αλλιώς εάν k i < k < k i +1 τότε τρέχων κόµβος = ρίζα A i αλλιώς τρέχων κόµβος= ρίζα A d-1 Το k δεν υπάρχει στο δένδρο 36
37 (a,b)- ένδρα Ιδέα: Γιατί το δένδρο να µην είναι τέλεια ισοζυγισµένο? Μπορούµε να επιτύχουµε όλα τα φύλλα να έχουν το ίδιο βάθος για οποιοδήποτε πλήθος κόµβων. Ένα (a,b)-δένδρο είναι δένδρο αναζήτησης πολλαπλής διακλάδωσης και έχει: a 2 και συνήθως b 2 a η ρίζα έχει d-1 κλειδιά και d παιδιά, 2 d b οι υπόλοιποι εσωτερικοί κόµβοι έχουν t-1 κλειδιά και t παιδιά, a t b τα φύλλα έχουν t-1 κλειδιά, a t b. 37
38 Ειδικές Περιπτώσεις (a,b)- ένδρων Β-δέντρα (βαθµού m) (Bayer 72) = ( m/2, m)- ένδρα Κοκκινό-µαυρα ένδρα = (2,4)- ένδρα x = x x z = x z = u x z x u z 38
39 (a,b)- ένδρα Μεταξύ όλων των (a,b)-δένδρων ύψους h, ποιο είναι εκείνο µε τους λιγότερους κόµβους? Ποιο είναι το ύψος αυτού του δένδρου ως προς το πλήθος κόµβων? Μεταξύ όλων των (a,b)-δένδρων ύψους h, ποιο είναι εκείνο µε τους περισσότερους κόµβους? Ποιο είναι το ύψος αυτού του δένδρου ως προς το πλήθος κόµβων? Το ύψος ενός (a,b)-δένδρου µε n κόµβους είναι Θ(log n). Ποια είναι η πολυπλοκότητα χρόνου της διαδικασίας αναζήτησης σε ένα (α,β)-δένδρο µε n κόµβους? 39
40 (2,3)- ένδρα Τα (2,3)-δένδρα έχουν 2 τύπους κόµβων: 2-κόµβους (µε 1 κλειδί και 2 παιδιά) 3-κόµβους (µε 2 κλειδιά και 3 παιδιά) 3-κόµβος 2-κόµβος 40
41 Εισαγωγή σε (2,3)- ένδρο Αλγόριθµος 1. Εύρεση του φύλλου στο οποίο θα πρέπει να εισαχθεί το νέο κλειδί. 2. Αν υπάρχει χώρος στον κόµβο (2-κόµβος, έχει 1 κλειδί), το νέο κλειδί εισάγεται εκεί και σταµατάµε. 3. Αν δεν υπάρχει χώρος (3-κόµβος, έχει 2 κλειδιά), ιάσπαση: χωρίζουµε τον κόµβο σε δύο 2-κόµβους, έναν µε το πρώτο και έναν µε το τρίτο κλειδί, και εάν υπάρχει κόµβος-πατέρας, περνάµε το µεσαίο κλειδί στον κόµβο-πατέρα για να αποθηκευτεί εκεί και επαναλαµβάνουµε στον κόµβο-πατέρα. Εάν δεν υπάρχει κόµβος-πατέρας, τότε ο κόµβος που χωρίσαµε είναι η ρίζα, και το µεσαίο κλειδί µπαίνει σε έναν 2-κόµβο µόνο του και αποτελεί τη νέα ρίζα του (2,3)-δένδρου. Σηµειώνεται ότι η διαδικασία επαναλαµβάνεται µέχρι είτε να βρούµε χώρο για το κλειδί σε κάποιο κόµβο στο µονοπάτι προς τη ρίζα, είτε να φτάσουµε στη ρίζα και να τη χωρίσουµε, οπότε το ύψος του δένδρου αυξάνει. Πολυπλοκότητα χρόνου = O(log n) 41
42 Παράδειγµα Εισαγωγής σε (2,3)-δένδρο Εισαγωγή του κλειδιού Ο στο δένδρο. 42
43 ιαγραφή σε (2,3)-δένδρο Λόγω της διαγραφής, ενδέχεται κάποιοι κόµβοι να µένουν χωρίς καθόλου κλειδιά. Όταν αυτό συµβαίνει, αν ο κόµβος έχει κάποιον αδελφικό κόµβο µε δύο κλειδιά, µπορούµε να µεταφέρουµε ένα κλειδί από τον αδελφικό κόµβο για να επιλύσουµε το πρόβληµα. π.χ., διαγραφή του Ε M P P 43
44 ιαγραφή σε (2,3)-δένδρο Αλγόριθµος 1. Αν το προς διαγραφή κλειδί είναι σε κόµβο φύλλο, διάγραψέ το. Αν όχι, αντικατάστησε το κλειδί µε το επόµενό του στην ενδο-διατεταγµένη διάσχιση και διάγραψε το επόµενό του από την αρχική του θέση (σε κόµβο φύλλο). 2. Έστω Ν ο κόµβος από τον οποίο διαγράφεται το κλειδί. Αν ο Ν έχει ένα κλειδί µετά τη διαγραφή, ο αλγόριθµος τερµατίζει. ιαφορετικά, ο Ν δεν έχει κανένα κλειδί και έχει 1 ή κανένα παιδί: a. Αν ο Ν είναι η ρίζα, διάγραψέ τον. Αν ο Ν δεν έχει παιδί, το δένδρο γίνεται άδειο. ιαφορετικά, το παιδί του Ν γίνεται ρίζα. Τερµατίζουµε. (Τώρα, ο Ν έχει τουλάχιστον έναν αδελφικό κόµβο. Γιατί?) b. ανεισµός: Αν ο Ν έχει έναν αδελφικό 3-κόµβο Ν ακριβώς στα δεξιά του, έστω S το κλειδί του πατρικού κόµβου των Ν, Ν που χωρίζει τα δύο υποδένδρα. Μετακινούµε το S στο Ν, και το αντικαθιστούµε στον πατέρα του µε το µικρότερο κλειδί του Ν. Αν Ν και Ν είναι εσωτερικοί κόµβοι, αλλάζουµε το αριστερότερο παιδί του Ν σε δεξιό παιδί του Ν. Τα Ν, Ν έχουν από ένα κλειδί το καθένα, και ο αλγόριθµος τερµατίζει. Αν όχι, ελέγχουµε για 3-κόµβο ακριβώς στα αριστερά. c. (Αν όχι, ο Ν έχει έναν αδελφικό 2-κόµβο Ν ελέγχουµε πρώτα δεξιά και µετά αριστερά.) Συνένωση: Έστω P ο πατέρας των Ν, Ν και S το κλειδί που χωρίζει τους Ν, Ν στον P. Συνενώνουµε το S και το κλειδί του Ν σε έναν νέο 3- κόµβο,ο οποίος αντικαθιστά τα Ν,Ν. Θέτουµε Ν = P και επαναλαµβάνουµε το βήµα 2 για τον P. 44
45 Παράδειγµα ιαγραφής σε (2,3)-δένδρο 45
h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?
Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΗΥ240 - Παναγιώτα Φατούρου 2
ΕΝΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Ισοζυγισµένα ένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δοµές που έχουν ήδη διδάχθει: Στατική Μη-Ταξινοµηµένη Λίστα -> Ο(n), όπου
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ
ΕΝΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Ισοζυγισµένα Δένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δοµές που έχουν ήδη διδάχθει: q Στατική Μη-Ταξινοµηµένη Λίστα -> Ο(n),
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ. ΗΥ240 - Παναγιώτα Φατούρου 1
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν
Διαβάστε περισσότεραΔομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ
Διαβάστε περισσότεραΔένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά
Διαβάστε περισσότερααντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών
ΕΝΟΤΗΤΑ ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό
Διαβάστε περισσότεραΕνότητα 7 Ουρές Προτεραιότητας
Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Διαβάστε περισσότεραΕκτενείς Δομές Δεδομένων
Εκτενείς Δομές Δεδομένων Εισαγωγή Δομές που βασίζονται σε συγκρίσεις : Ισοζυγισμένα δέντρα εύρεσης ( δέντρα τα φύλλα των οποίων απέχουν της ίδιας τάξεως μεγέθους, απόσταση απο τη ρίζα) Υψοζυγισμένα δέντρα
Διαβάστε περισσότεραΕισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Διαβάστε περισσότερα9. Κόκκινα-Μαύρα Δέντρα
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 9. Κόκκινα-Μαύρα Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 9/12/2016 Δέντρα,
Διαβάστε περισσότεραΙσοζυγισμένα υαδικά έντρα Αναζήτησης
Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,
AVL- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Υλοποίηση ΑVL-δένδρων Εισαγωγή κόµβων και περιστροφές ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 7-1 AVL ένδρα Είναι δυνατό
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1
Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,
B- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 ένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-1 2-3 ένδρα Γενίκευση των δυαδικών
Διαβάστε περισσότεραInsert(K,I,S) Delete(K,S)
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και
Διαβάστε περισσότεραΕνότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή
Διαβάστε περισσότεραΕκτενείς Δομές Δεδομένων
Εκτενείς Δομές Δεδομένων Ειδικά Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Το αριστερό υποδένδρο κάθε κόμβου έχει τιμές μικρότερες από την τιμή του κόμβου. Το δεξιό υποδένδρο κάθε κόμβου έχει τιμές μεγαλύτερες
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων
Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1
B-Δένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1 2-3 Δένδρα Γενίκευση των δυαδικών δένδρων αναζήτησης.
Διαβάστε περισσότεραΙσορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y
Διαβάστε περισσότεραΚεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης
Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158
Διαβάστε περισσότεραΕνότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα
Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα
Διαβάστε περισσότεραΕνότητα 7 Ουρές Προτεραιότητας
Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Διαβάστε περισσότεραΔοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης
Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ
ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν
Διαβάστε περισσότεραΑλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι
Διαβάστε περισσότεραΙσοζυγισµένο έντρο (AVL Tree)
Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό
Διαβάστε περισσότεραυαδικά δέντρα αναζήτησης
υαδικά δέντρα αναζήτησης οµές εδοµένων 3 ο εξάµηνο Ορισµός δυαδικού δέντρου αναζήτησης Σ ένα δυαδικό δέντρο αναζήτησης, για κάθε κόµβο Χ, Όλα τα κλειδιά(αντικείµενα) στο αριστερό υποδέντρο του Χ έχουν
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραΔομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ
ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι
Διαβάστε περισσότεραέντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη
έντρα 2-3-4 ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Σημερινό Μάθημα 2-3-4 έντρα Ισοζυγισμένα δέντρα αναζήτησης έντρα αναζήτησης πολλαπλών
Διαβάστε περισσότεραΔιάλεξη 18: B-Δένδρα
Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΟΜΕΣ Ε ΟΜΕΝΩΝ T. Σελλής ΑΝΟΙΞΗ 2003 ΑΣΚΗΣΗ #3 Ηµερ. Παράδοσης: 09/05/03
Διαβάστε περισσότεραοµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)
Διαβάστε περισσότεραΔιάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότερα3 Αναδροµή και Επαγωγή
3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Διαβάστε περισσότεραέντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα
έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων έντρα Αναζήτησης Πολλαπλής ιακλάδωσης ( ΑΠ ) ΑΠ ή έντρα m-δρόµων: Σ Βάσεων εδοµένων.
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΔυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι
Διαβάστε περισσότεραΚεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας
Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Περιεχόμενα 14.1 Διωνυμικά Δένδρα... 255 14.2 Διωνυμικές Ουρές... 258 14.1.1 Εισαγωγή στοιχείου σε διωνυμική ουρά... 258 14.1.2 Διαγραφή μεγίστου από διωνυμική
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΟι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:
υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 23: Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων - Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα Διδάσκων:
Διαβάστε περισσότεραΔιάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231
Διαβάστε περισσότεραΒασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.
Βασικές Προτάσεις έντρα Ορέστης Τελέλης Κάθε δέντρο µε n κόµβους έχει n ακµές. ικαιολόγηση: Με επαγωγή στο πλήθος των κόµβων, n. έντρο µε k εσωτερικούς κόµβους και l ϕύλλα έχει n = k + l κόµβους. tllis@unipi.r
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Γραφηµάτων (4) - έντρα
Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Ορέστης Τελέλης tllis@unipi.r Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 1 / 27 έντρα έντρο είναι απλό συνδεδεµένο µη
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)
ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε
Διαβάστε περισσότεραΔιαχρονικές δομές δεδομένων
Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)
ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) Ένωση Ξένων Συνόλων (Disjoint Sets with Union) S 1,, S k : ξένα υποσύνολα ενός συνόλου U δηλ., S i S j =, αν i j, και S 1 S k = U. Λειτουργίες που θέλουµε
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕνότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του
Διαβάστε περισσότεραΔένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραAVL-trees C++ implementation
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:
Διαβάστε περισσότεραΕιδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από
Διαβάστε περισσότεραένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ
ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου 1 Σύνολα (Sets) q Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U (universe) αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών σύνολα
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραRed-black δέντρα (Κεφ. 5)
Red-black δέντρα (Κεφ. ) Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 07 30 Μαρτίου 07 papagianno@ceid.upatras.gr . Εισαγωγή Περιεχόμενα. Ορισμός red-black δέντρων 3. Αναζήτηση σε red-black δέντρα
Διαβάστε περισσότεραιαφάνειες παρουσίασης #10 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΔιάλεξη 14: Δέντρα IV - B-Δένδρα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,
Διαβάστε περισσότεραΓ. Κορίλη Αλγόριθµοι ροµολόγησης
- Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι
Διαβάστε περισσότεραΒασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διαβάστε περισσότεραΚατ οίκον Εργασία 3 Σκελετοί Λύσεων
Άσκηση 1 Χρησιµοποιούµε τη δοµή Κατ οίκον Εργασία 3 Σκελετοί Λύσεων typedef struct Node int data; struct node *lchild; struct node *rbro; node; και υποθέτουµε πως ένα τυχαίο δένδρο είναι υλοποιηµένο ως
Διαβάστε περισσότεραΚατ οίκον Εργασία 3 Σκελετοί Λύσεων
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 12. Ανασκόπηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 13/01/2017 Εξεταστέα Ύλη
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Διαβάστε περισσότεραRed-Black Δέντρα. Red-Black Δέντρα
Red-Black Δέντρα v 6 3 8 4 z Red-Black Δέντρα Περίληψη Από τα (2,4) δέντρα στα red-black δέντρα Red-black δέντρο Ορισμός Ύψος Εισαγωγή αναδόμηση επαναχρωματισμός Διαγραφή αναδόμηση επαναχρωματισμός προσαρμογή
Διαβάστε περισσότεραRed- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)
ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. ) Δομές Δεδομένων Μπαλτάς Αλέξανδρος 4 Μαρτίου 0 ampaltas@ceid.upatras.gr Περιεχόμενα. Εισαγωγή. Ορισμός red- black
Διαβάστε περισσότεραΟυρές προτεραιότητας
Ουρές προτεραιότητας Πελάτες... στο ταµείο µιας τράπεζας Κάθε πελάτης µε ένα νούµερο/αριθµός προτεραιότητας! Όσοοαριθµός είναι µεγάλος, τόσο οι πελάτες είναι πιο ενδιαφέροντες(!) ένα µόνο ταµείο ανοικτό
Διαβάστε περισσότεραΜελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.
Ψηφιακά Δένδρα Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών τα οποία είναι ακολουθίες συμβάλλων από ένα πεπερασμένο αλφάβητο Ένα στοιχείο γράφεται ως, όπου κάθε. Μπορούμε να
Διαβάστε περισσότεραΟργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Διαβάστε περισσότεραένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Άσκηση 1 Ενότητα : Υλοποίηση Λεξικών µε
Διαβάστε περισσότεραΑφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
Διαβάστε περισσότεραPROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΜΕΡΟΣ ΠΡΩΤΟ Πολίτη Όλγα Α.Μ. 4528 Εξάµηνο 8ο Υπεύθυνος Καθηγητής Λυκοθανάσης
Διαβάστε περισσότεραΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την
Διαβάστε περισσότεραΔένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Διαβάστε περισσότεραΔυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:
Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΓενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα
Γενικό πλάνο Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 1 Παράδειγµα δοµικής επαγωγής 2 Ορισµός δοµικής
Διαβάστε περισσότεραΚεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1
ιαφάνεια 14-1 Κεφάλαιο 14 οµές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ιαβλος, Επιµέλεια Μ.Χατζόπουλος 1 Θα µιλήσουµε για Τύποι Ταξινοµηµένων Ευρετηρίων
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Διαβάστε περισσότερα