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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

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()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΗΥ240 - Παναγιώτα Φατούρου 2

ΗΥ240 - Παναγιώτα Φατούρου 2 ΕΝΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Ισοζυγισµένα ένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δοµές που έχουν ήδη διδάχθει: Στατική Μη-Ταξινοµηµένη Λίστα -> Ο(n), όπου

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ. ΗΥ240 - Παναγιώτα Φατούρου 1 ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν

Διαβάστε περισσότερα

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

Διαβάστε περισσότερα

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

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

9. Κόκκινα-Μαύρα Δέντρα

9. Κόκκινα-Μαύρα Δέντρα Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 9. Κόκκινα-Μαύρα Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 9/12/2016 Δέντρα,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, AVL- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Υλοποίηση ΑVL-δένδρων Εισαγωγή κόµβων και περιστροφές ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 7-1 AVL ένδρα Είναι δυνατό

Διαβάστε περισσότερα

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

Διαβάστε περισσότερα

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

Ενότητα 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 Δέντρα Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Διαβάστε περισσότερα

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

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα

Διαβάστε περισσότερα

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

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε

Διαβάστε περισσότερα

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

Ισοζυγισµένο έντρο (AVL Tree) Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό

Διαβάστε περισσότερα

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν

Διαβάστε περισσότερα

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

Διαβάστε περισσότερα

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

υαδικά δέντρα αναζήτησης υαδικά δέντρα αναζήτησης οµές εδοµένων 3 ο εξάµηνο Ορισµός δυαδικού δέντρου αναζήτησης Σ ένα δυαδικό δέντρο αναζήτησης, για κάθε κόµβο Χ, Όλα τα κλειδιά(αντικείµενα) στο αριστερό υποδέντρο του Χ έχουν

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)

Διαβάστε περισσότερα

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

Διαβάστε περισσότερα

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

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων έντρα Αναζήτησης Πολλαπλής ιακλάδωσης ( ΑΠ ) ΑΠ ή έντρα m-δρόµων: Σ Βάσεων εδοµένων.

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 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: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

AVL-trees C++ implementation

AVL-trees C++ implementation Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές

Διαβάστε περισσότερα

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

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

ένδρα 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)

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #10 (β)

ιαφάνειες παρουσίασης #10 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 12. Ανασκόπηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 13/01/2017 Εξεταστέα Ύλη

Διαβάστε περισσότερα

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5) ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. ) Δομές Δεδομένων Μπαλτάς Αλέξανδρος 4 Μαρτίου 0 ampaltas@ceid.upatras.gr Περιεχόμενα. Εισαγωγή. Ορισμός red- black

Διαβάστε περισσότερα

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 Χρησιµοποιούµε τη δοµή Κατ οίκον Εργασία 3 Σκελετοί Λύσεων typedef struct Node int data; struct node *lchild; struct node *rbro; node; και υποθέτουµε πως ένα τυχαίο δένδρο είναι υλοποιηµένο ως

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

Διαβάστε περισσότερα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα Γενικό πλάνο Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 1 Παράδειγµα δοµικής επαγωγής 2 Ορισµός δοµικής

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,

Διαβάστε περισσότερα

Μαθηµατικά για Πληροφορική

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 14/10/2008 1 / 24 Γενικό πλάνο 1 Παράδειγµα δοµικής επαγωγής

Διαβάστε περισσότερα

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ ΜΕΡΟΣ ΠΡΩΤΟ Πολίτη Όλγα Α.Μ. 4528 Εξάµηνο 8ο Υπεύθυνος Καθηγητής Λυκοθανάσης

Διαβάστε περισσότερα

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ 2006-2007 2η Σειρά Ασκήσεων ΑΠΑΝΤΗΣΕΙΣ 1. ίνεται το γνωστό πρόβληµα των δύο δοχείων: «Υπάρχουν δύο δοχεία

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα

Διαβάστε περισσότερα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης Δοµές Δεδοµένων 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης Περίληψη Δέντρα Δυαδικής Αναζήτησης Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων ΔΔΑ Εισαγωγή στη ρίζα ΔΔΑ Υλοποιήσεις

Διαβάστε περισσότερα

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

Διάλεξη 24: B-Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 24: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή & Ισοζυγισμένα Δένδρα - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις -Β-δένδρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές

Διαβάστε περισσότερα

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1 ιαφάνεια 14-1 Κεφάλαιο 14 οµές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ιαβλος, Επιµέλεια Μ.Χατζόπουλος 1 Θα µιλήσουµε για Τύποι Ταξινοµηµένων Ευρετηρίων

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :

Διαβάστε περισσότερα

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

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

υαδικά έντρα Αναζήτησης ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Πανεπιστήµιο Αιγαίου υαδικά έντρα µε ρίζα. Κάθε εσωτερικός κόµβος περιέχει στοιχείο (αριθµό) και έχει δύο παιδιά. NULL-φύλλα

Διαβάστε περισσότερα

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

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 9-1 Ουρά προτεραιότητας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

Διαβάστε περισσότερα

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

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ B- Trees Δομές Δεδομένων Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ampaltas@ceid.upatras.gr Περιεχόμενα 1. Εισαγωγή 2. Ορισμός B- tree 3. Αναζήτηση σε B- tree 4. Ένθεση σε

Διαβάστε περισσότερα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα Δένδρα Δένδρα Ειδική κατηγορία γραφημάτων: συνεκτικά γραφήματα που δεν περιέχουν απλά κυκλώματα [1857] Arthur Cayley: για απαρίθμηση ορισμένων ειδών χημικών ενώσεων Χρησιμοποιούνται σε πληθώρα προβλημάτων,

Διαβάστε περισσότερα

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής

Διαβάστε περισσότερα

Δομές Δεδομένων Ενότητα 5

Δομές Δεδομένων Ενότητα 5 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Δυαδικά Δένδρα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

Διαβάστε περισσότερα

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

Διαβάστε περισσότερα

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Mergesort Κεφάλαιο 8 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική ταξινόµηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη.

Διαβάστε περισσότερα

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

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

Η Περιοχή Εργασίας του Flash

Η Περιοχή Εργασίας του Flash Η Περιοχή Εργασίας του Flash Η Λωρίδα Χρόνου και τα Επίπεδα Το Flash είναι εφαρμογή με την οποία φτιάχνουμε ταινίες όπως διαφημιστικά banners και διαδραστικές εφαρμογές οι οποίες περιέχουν κίνηση. Για

Διαβάστε περισσότερα

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα (2) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Αυτόµατα Στοίβας Pushdown utomata Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα