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

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

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

Transcript

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

2 ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ ΗΥ24 - Παναγιώτα Φατούρου 2

3 Ισοζυγισμένα Δένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δομές που έχουν ήδη διδάχθει: Στατική Μη-Ταξινομημένη Λίστα -> Ο(n), όπου n το πλήθος των κόμβων Στατική Ταξινομημένη Λίστα -> Ο(n) Δυναμική μη-ταξινομημένη λίστα -> O(n) Δυναμική ταξινομημένη λίστα -> O(n) Γραμμική πολυπλοκότητα Μη-ταξινομημένα Δένδρα -> O(n), όπου n το πλήθος των κόμβων Ταξινομημένα Δένδρα - > O(h), όπου h το ύψος του δένδρου Τι τιμές μπορεί να πάρει το h; Αναζητούνται δομές δεδομένων για την υλοποίηση δυναμικών λεξικών που να παρουσιάζουν καλύτερη χρονική πολυπλοκότητα: π.χ., όλες οι λειτουργίες να έχουν χρονική πολυπλόκοτητα Ο(logn) ΗΥ24 - Παναγιώτα Φατούρου 3

4 Δένδρα AVL (Adel son, Vel skii & Landis) Ένα ταξινομημένο δυαδικό δένδρο Τ ονομάζεται AVL (ή ισοζυγισμένο κατ ύψος) αν και μόνο αν τα ύψη των δύο υποδένδρων κάθε κόμβου v διαφέρουν το πολύ κατά ένα. Για κάθε κόμβο v ενός δυαδικού δένδρου Τ, ορίζουμε το αριστερό ύψος του v (LeftHeight(v)) ως εξής: LeftHeight () v 1 Height( v LC) αν v->lc == NULL διαφορετικά Ομοίως, ορίζουμε το δεξιό ύψος του v (RightHeight(v)) ως εξής: αν v->rc == NULL RightHeightv () 1 Heightv ( RC) διαφορετικά Το LeftHeight(T) (RightHeight(T)) του δένδρου ισούται με το LeftHeight(R) (RightHeight(R), αντίστοιχα), όπου R είναι ο κόμβος ρίζα του Τ. ΗΥ24 - Παναγιώτα Φατούρου 4

5 Δένδρα AVL Το balance (ισοζύγιο) του κόμβου v ορίζεται ως εξής: balance(v) = RightHeight(v) LeftHeight(v). Σχήμα 7.1: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 Σε ένα δένδρο AVL, κάθε κόμβος πρέπει να έχει balance, ή -1. Πρόταση 1 Κάθε υποδένδρο ενός δένδρου AVL είναι επίσης δένδρο AVL. Θεώρημα Το ύψος h ενός δένδρου AVL με n στοιχεία είναι Ο(logn). Τι μπορούμε να συμπεράνουμε για την πολυπλοκότητα της AVLTreeLookUp()? Τα δένδρα (α), (b) και (c) είναι δένδρα AVL, ενώ τα (d) και (e) δεν είναι. ΗΥ24 - Παναγιώτα Φατούρου 5

6 Δένδρα AVL Απόδειξη Θεωρήματος Αναζητούμε ένα πάνω φράγμα στο μήκος h του μακρύτερου μονοπατιού οποιουδήποτε δένδρου AVL με n κόμβους. Έστω ένας οποιοσδήποτε ακέραιος h. Θα εστιάσουμε στο ερώτημα «Ποιος είναι ο μικρότερος ακέραιος n τ.ω. να υπάρχει ένα δένδρο AVL ύψους h με n κόμβους;» W h : σύνολο όλων των δένδρων AVL ύψους h με ελάχιστο πλήθος κόμβων. w h : πλήθος κόμβων σε οποιoδήποτε από αυτά τα δένδρα. w = 1 και w 1 = 2. Έστω ότι Τ είναι οποιοδήποτε δένδρο AVL στο W h και έστω T L και T R το αριστερό και το δεξιό υποδένδρο του Τ, αντίστοιχα. ΗΥ24 - Παναγιώτα Φατούρου 6

7 Δένδρα AVL Απόδειξη Θεωρήματος Αφού το T έχει ύψος h, είτε το T L ή το T R έχει ύψος h-1 (ας υποθέσουμε χωρίς βλάβη της γενικότητας ότι το T R έχει ύψος h-1). Το T R είναι δένδρο AVL ύψους h-1 και μάλιστα θα πρέπει να έχει το μικρότερο πλήθος κόμβων μεταξύ των δένδρων AVL ύψους h-1 (αφού στην αντίθετη περίπτωση, θα μπορούσε να αντικατασταθεί από κάποιο δένδρο AVL ύψους h-1 με λιγότερους κόμβους και να οδηγηθούμε έτσι σε ένα δένδρο AVL ύψους h με λιγότερους κόμβους από ότι το Τ, το οποίο αντιτίθεται στον ορισμό του Τ). ΗΥ24 - Παναγιώτα Φατούρου 7

8 Δένδρα AVL Απόδειξη Θεωρήματος Άρα, T R W h-1. Αφού το T είναι δένδρο AVL, το T L έχει ύψος είτε h-1 ή h-2. Εφόσον το Τ είναι δένδρο με ελάχιστο πλήθος κόμβων μεταξύ εκείνων με ύψος h, θα πρέπει να ισχύει T L W h-2. Επομένως: w h = 1 + w h-2 + w h-1 Μπορεί να αποδειχθεί (επαγωγικά) ότι w h = F h+3-1, όπου F i είναι ο i-οστός όρος της ακολουθίας Fibonacci, για τον οποίο ισχύει ότι F i > φ i / 5-1, όπου φ = (1+ 5)/2. Επομένως, n w h > φ h+3 / 5-2. Από την παραπάνω ανίσωση προκύπτει ότι h = Ο(logn). 5 ΗΥ24 - Παναγιώτα Φατούρου 8

9 Δένδρα AVL Εισαγωγή Πως μπορούμε να υλοποιήσουμε την Insert()? Που διαφέρει από την Insert() σε δυαδικό δένδρο αναζήτησης? 1η Προσπάθεια Σχεδίασης Αλγορίθμου Εισαγωγής Ακολουθώντας το γνωστό αλγόριθμο εισαγωγής σε δένδρο δυαδικής αναζήτησης, βρίσκουμε το μονοπάτι από τη ρίζα προς τον κατάλληλο κόμβο (έστω v) στον οποίο θα γίνει η εισαγωγή. Υπολογίζουμε τα νέα balances για κάθε κόμβο του μονοπατιού. Αν το balance όλων των κόμβων του μονοπατιού εξακολουθεί να είναι, ή -1, η διαδικασία εισαγωγής τερματίζει. Αν το balance κάποιου κόμβου αλλάζει σε +2 ή σε 2, θα πρέπει να ακολουθηθεί διαδικασία προσαρμογής του balance. Η διαδικασία αυτή θα έχει ως αποτέλεσμα το δένδρο να εξακολουθεί να είναι ταξινομημένο δυαδικό δένδρο με τους ίδιους κόμβους και κλειδιά, αλλά με όλους τους κόμβους να έχουν balance, 1, ή -1. ΗΥ24 - Παναγιώτα Φατούρου 9

10 Δένδρα AVL Περιστροφές Μια περιστροφή είναι μια τοπική λειτουργία σε ένα ταξινομημένο δένδρο η οποία διατηρεί την ιδιότητα της ταξινόμησης. Σχήμα 13.2: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 Αριστερή Περιστροφή γύρω από έναν κόμβο x (ο οποίος έχει δεξιό θυγατρικό κόμβο y!= nill) Στρέφει τους x και y κατά αντίστροφη φορά αυτής των δεικτών του ρολογιού. Καθιστά τον y νέα ρίζα του υποδένδρου, μετατρέποντας τον x σε αριστερό παιδί του y και το αριστερό υποδένδρο του y σε δεξιό υποδένδρο του x. Σχήμα 13.3: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 1

11 Δένδρα AVL Περιστροφές Procedure LeftRotate(pointer R, pointer x) { y = x->rc; // ορισμός του y /* μετατροπή αριστερού υποδένδρου y σε δεξιό υποδένδρο x */ x->rc = y->lc; if (y->lc!= NULL) y->lc->p = x; /* νέος πατρικός κόμβος του y γίνεται ο πρώην πατρικός κόμβος του x και αν δεν υπάρχει τέτοιος κόμβος, νέα ρίζα του δένδρου γίνεται το y */ y->p = x->p; if (x->p == NULL) { y-> LC = x; x->p = y; return y; } if (x == x->p->lc) // αν ο x είναι αριστερό παιδί του πατέρα του x->p->lc = y; } else x->p->rc = y; y->lc = x; // αριστερό παιδί του y γίνεται το x x->p = y; // πατέρας του x γίνεται το y Μια δεξιά περιστροφή γίνεται με συμμετρικό τρόπο. Χρονική Πολυπλοκότητα μιας περιστροφής; Ο(1) ΗΥ24 - Παναγιώτα Φατούρου 11

12 w Δένδρα AVL Εισαγωγή Ο πρώτος κόμβος στο μονοπάτι από τον εισαχθέντα κόμβο v προς τη ρίζα, του οποίου το balance ήταν ή -1 (πριν την εισαγωγή) ονομάζεται κρίσιμος κόμβος. Αν ο κόμβος αυτός αποκτά balance +2 ή -2 μετά την εισαγωγή, τότε πρέπει να γίνουν κατάλληλες ενέργειες ώστε να διορθωθεί το balance του. Διακρίνουμε περιπτώσεις ανάλογα με το είδος των δύο πρώτων ακμών του μονοπατιού από τον κρίσιμο κόμβο w προς τον εισαχθέντα κόμβο v., 3 w Σχήμα 7.4: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, ,, + 2,, , +2, Εισαγωγή 8, , +2 ΗΥ24 - Παναγιώτα Φατούρου 12 5 R, 4 6 R 7 55 T 1 T 2 R R κρίσιμος κόμβος (w),, 8 v T 3 v

13 w Δένδρα AVL Εισαγωγή Περίπτωση RR (Right-Right): Και οι δύο ακμές οδηγούν δεξιά. w R R Εκτελούμε μια αριστερή περιστροφή γύρω από τον κρίσιμο κόμβο. v Παρατήρηση: Έστω x ο πατρικός κόμβος του w και έστω ότι ο w είναι δεξιό παιδί του x. Το ύψος του w πριν την εισαγωγή και μετά την περιστροφή είναι το ίδιο (στο παράδειγμα h+2), 3 5,, + 2,, , +2, Εισαγωγή 8, , +2 ΗΥ24 - Παναγιώτα Φατούρου 13 κρίσιμος κόμβος (w) 5 R, 4 6 R 7 55,, T 1 T 2 8 v T 3

14 Δένδρα AVL Εισαγωγή Περίπτωση RR Όλοι οι κόμβοι στο μονοπάτι από τον κρίσιμο κόμβο προς τη ρίζα έχουν το ίδιο balance μετά την περιστροφή με αυτό που είχαν πριν την εισαγωγή του v στο δένδρο. x w x πριν την εισαγωγή, μετά την εισαγωγή x 5,,+2 3 κρίσιμος κόμβος πριν την εισαγωγή, 5, 11 μετά την εισαγωγή, , +2 5,,,, ,,, 55, x Εισαγωγή 8 T 1 T 2 7,, 8 v T 3 Μία περιστροφή γύρω από τον κρίσιμο κόμβο αρκεί. 3 7,,,, 9, Μετά περιστροφής T 1 15, 2, ,, T 2 7, ΗΥ24 - Παναγιώτα Φατούρου 14 8 T 3 Δεν χρειάζονται περιστροφές γύρω από κόμβους που βρίσκονται πιο ψηλά από τον κρίσιμο κόμβο στο μονοπάτι από τον v προς τη ρίζα.

15 Δένδρα AVL Εισαγωγή Περίπτωση LL Περίπτωση LL: Και οι δύο ακμές οδηγούν αριστερά. Είναι συμμετρική της περίπτωσης RR! Μία δεξιά περιστροφή γύρω από τον κρίσιμο κόμβο αρκεί για να επιλυθεί το πρόβλημα με το balance του! -1-2 C C -1 T 3 h T 3 h h h T 1 T 2 h T 1 h T 2 C T 1 T 2 h T 3 h ΗΥ24 - Παναγιώτα Φατούρου 15

16 Δένδρα AVL Εισαγωγή Περίπτωση RL Περίπτωση RL: Η πρώτη ακμή οδηγεί δεξιά και η δεύτερη αριστερά. Απαιτούνται δύο περιστροφές, μια δεξιά περιστροφή γύρω από τον επόμενο του κρίσιμου κόμβου στο μονοπάτι που οδηγεί στον v και μια αριστερή περιστροφή γύρω από τον κρίσιμο κόμβο. πριν την εισαγωγή, μετά την εισαγωγή 5,,+2 3 κρίσιμος κόμβος (Α) , +2 5,,, R, ,,, L 7 55 Εισαγωγή 58, T 1, 58 nill, T 4 Σχήμα 7.5: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 T 2 T 3 ΗΥ24 - Παναγιώτα Φατούρου 16

17 Δένδρα AVL Εισαγωγή Περίπτωση RL πριν την εισαγωγή μετά την εισαγωγή, ,,+2 3 Περιστροφή R, ,+2 3 κρίσιμος κόμβος (Α) κρίσιμος κόμβος (Α) , +2 5,,, R, ,,, L 7 55 Εισαγωγή 58, T 1, 58 nill, T Περιστροφή L 15 2, ,+2-1, 6 7, 58, T 2 T 3 πριν την εισαγωγή μετά την εισαγωγή 3 5, , 15 ύψος πριν την εισαγωγή = ύψος μετά την εισαγωγή = 2 3, 55 2,-1, ,, Ίδιες περιστροφές θα πραγματοποιούνταν αν είχαμε εισαγωγή του 53 στο αρχικό δένδρο (το οποίο θα ήταν αριστερό παιδί του 55). ΗΥ24 - Παναγιώτα Φατούρου 17

18 Δένδρα AVL Εισαγωγή Περίπτωση LR Περίπτωση LR: Η πρώτη ακμή οδηγεί αριστερά και η δεύτερη δεξιά. Είναι συμμετρική της περιπτώσεως RL. Απαιτούνται δύο περιστροφές, μια αριστερή περιστροφή γύρω από τον επόμενο του κρίσιμου κόμβου στο μονοπάτι που οδηγεί στον v και μια δεξιά περιστροφή γύρω από τον κρίσιμο κόμβο. Άσκηση για το σπίτι Φτιάξτε τα αντίστοιχα συμμετρικά σχήματα εκείνων που παρουσιάστηκαν στις δύο τελευταίες διαφάνειες και μελετήστε τις ενέργειες που πρέπει να πραγματοποιηθούν στην περίπτωση LR. ΗΥ24 - Παναγιώτα Φατούρου 18

19 Δένδρα AVL Περιστροφές κατά την Εισαγωγή Παρατήρηση Οι περιστροφές γίνονται γύρω από το πολύ δύο κόμβους στο δένδρο ανάλογα με την περίπτωση που πρέπει να εφαρμοστεί: μία περιστροφή γύρω από τον κρίσιμο κόμβο για τις περιπτώσεις LL, RR δύο περιστροφές, η πρώτη γύρω από τον επόμενο του κρίσιμου κόμβου στο μονοπάτι που ακολουθήθηκε κατά την τοποθέτηση του εισαχθέντα κόμβου και η δεύτερη γύρω από τον κρίσιμο κόμβο, για τις περιπτώσεις RL, LR ΗΥ24 - Παναγιώτα Φατούρου 19

20 Δένδρα AVL Εισαγωγή Περιπτώσεις που δεν απαιτούν περιστροφές, 11 5,, 3 κρίσιμος κόμβος 3 7,,,, 9 Εισαγωγή 38, 15,, , 5, 55, 6 7,, ,, ,,,, Σχήμα 7.3: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991, 9 Εισαγωγή 9 ΗΥ24 - Παναγιώτα Φατούρου 2

21 Εισαγωγές κόμβων σε AVL δένδρο Παράδειγμα Διαδοχικές εισαγωγές των κλειδιών με τιμές 9, 71, 1, 4, 12, 5, 19, 52 και L κρίσιμος κόμβος L L -1 1 κρίσιμος κόμβος L ΗΥ24 - Παναγιώτα Φατούρου 21

22 Εισαγωγές κόμβων σε AVL δένδρο Παράδειγμα Διαδοχικές εισαγωγές των κλειδιών με τιμές 9, 71, 1, 4, 12, 5, 19, 52 και L R κρίσιμος κόμβος κρίσιμος κόμβος R R 52 κρίσιμος κόμβος ΗΥ24 - Παναγιώτα Φατούρου 22

23 Δένδρα AVL Εισαγωγή - Παρατηρήσεις Κάθε κόμβος στο μονοπάτι από τον εισαχθέντα κόμβο v μέχρι τον κρίσιμο κόμβο w είχε balance πριν την εισαγωγή. Άρα, θα έχει balance ή 1 μετά την εισαγωγή. Τι καθορίζει το αν κάποιος τέτοιος κόμβος θα έχει balance ή 1; Το αν η πρώτη ακμή στο μονοπάτι από τον κόμβο αυτό προς τον εισαχθέντα κόμβο οδηγεί αριστερά ή δεξιά. To balance του κρίσιμου κόμβου w γίνεται είτε ή +2 (ή 2, αντίστοιχα) μετά την τοποθέτηση του νέου κόμβου στην κατάλληλη θέση στο δένδρο. Γιατί; Πότε το balance γίνεται και πότε +2 (ή 2); Αν το balance ήταν (-1) και η πρώτη ακμή στο μονοπάτι από τον w στον v οδηγεί δεξιά (αριστερά, αντίστοιχα), ο w θα έχει balance +2 (-2, αντίστοιχα) μετά την τοποθέτηση του v, ενώ αν το μονοπάτι οδηγεί αριστερά (δεξιά, αντίστοιχα), τότε ο w θα έχει balance μετά την τοποθέτηση του v. ΗΥ24 - Παναγιώτα Φατούρου 23

24 Δένδρα AVL Εισαγωγή - Παρατηρήσεις Καθώς η αναζήτηση του πατρικού κόμβου του v εξελίσσεται, αρκεί να αποθηκεύεται ο τελευταίος κόμβος με balance ή -1 στο μονοπάτι που ακολουθείται. Μετά την τοποθέτηση του v στο δένδρο (και πριν τις περιστροφές), ξεκινώντας από τον κρίσιμο κόμβο w μπορεί να ακολουθηθεί και πάλι το ίδιο μονοπάτι προς τον εισερχόμενο κόμβο ώστε να διορθωθούν τα balances. Γιατί μπορούμε να βρούμε και πάλι αυτό το μονοπάτι? Ακολουθούμε την ίδια διαδικασία αναζήτησης (ξεκινώντας από τον w), δηλαδή αν το κλειδί του προς εισαγωγή κόμβου είναι μικρότερο από εκείνο του τρέχοντος ο επόμενος κόμβος στο μονοπάτι είναι στα αριστερά του τρέχοντος, ενώ διαφορετικά στα δεξιά. Πως διορθώνουμε τα balances? Έστω ένας οποιοσδήποτε κόμβος x στο μονοπάτι από τον w στον v. Ο κόμβος αυτός είχε balance. Αν η πρώτη ακμή στο μονοπάτι από τον x στον v οδηγεί αριστερά του x, τότε το balance του x γίνεται -1, διαφορετικά η νέα τιμή του balance θα είναι. ΗΥ24 - Παναγιώτα Φατούρου 24

25 Δένδρα AVL Εισαγωγή - Πολυπλοκότητα Ποια είναι η πολυπλοκότητα της AVLInsert()? Ο(ύψος δένδρου). Θεώρημα ύψος δένδρου AVL = O(logn) Χρονική Πολυπλοκότητα εισαγωγής = O(logn) ΗΥ24 - Παναγιώτα Φατούρου 25

26 Δένδρα AVL Διαγραφή Ακολουθούμε το γνωστό αλγόριθμο διαγραφής σε ταξινομημένο δένδρο: 1) Διαγραφή του ίδιου του κόμβου v αν είναι φύλλο. 2) Αντικατάστασή του από το παιδί του αν έχει μόνο ένα παιδί. 3) Αντικατάστασή του από τον επόμενό του στην ενδο-διατεταγμένη διάταξη αν έχει δύο παιδιά. Σχήμα 7.6: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 (α) Αρχικό δένδρο, (b) Διαγραφή του Β, (c) Διαγραφή του F, (d) Διαγραφή του M, (e) Διαγραφή του R Balance Αν 1) ή 2), το balance του γονικού κόμβου w του v αλλάζει. Αν 3), το balance του γονικού κόμβου w του επομένου του v στην ενδοδιατεταγμένη διάσχιση αλλάζει. ΗΥ24 - Παναγιώτα Φατούρου 26

27 Δένδρα AVL Αλγόριθμος Διαγραφής Β Α C Ε F H J 1. Εξετάζουμε όλο το μονοπάτι (ας το συμβολίσουμε με P1) από τον w ως τη ρίζα και για κάθε κόμβο του μονοπατιού αυτού που έχει balance +2 ή -2 μετά τη διαγραφή, ίσως χρειαστεί να γίνουν περιστροφές. 2. Έστω u ο πρώτος τέτοιος κόμβος στο P1. w,u Β G D Ε +2 R C R F D H G I I K J K L L ΗΥ24 - Παναγιώτα Φατούρου 27

28 Δένδρα AVL Αλγόριθμος Διαγραφής 3. Καθορίζουμε το μονοπάτι P2 με το μεγαλύτερο μήκος από τον u προς οποιοδήποτε φύλλο του υποδένδρου του και εξετάζουμε τις δύο πρώτες ακμές σε αυτό το μονοπάτι. Αν LL (ή RR) πραγματοποιούμε μια περιστροφή R (L) γύρω από τον u. Αν RL (ή LR) πραγματοποιούμε δύο περιστροφές, την πρώτη τύπου R (L) γύρω από τον επόμενο του u στο μονοπάτι P2 και τη δεύτερη τύπου L (R) γύρω από τον u. w,u Β C +2 R D R Ε F H G I J K L 4. Επαναπροσδιορίζουμε balances κόμβων στο P1 & αν εξακολουθούν να υπάρχουν κόμβοι με μη-επιτρεπτό balance σε αυτό: Θέτουμε u = πρώτος κόμβος στο P1 με μη επιτρεπτό balance; Πηγαίνουμε στο Βήμα 3; ΗΥ24 - Παναγιώτα Φατούρου 28

29 Παράδειγμα Διαγραφής που Οδηγεί σε Πολλαπλές Περιστροφές B C w,u D Β R C D R νέος u Ε Ε R F H G F R I H G I J J K K Κόμβος με μη-επιτρεπτό balance Μακρύτερο μονοπάτι από αυτόν προς οποιοδήποτε φύλλο τύπου RR μία περιστροφή τύπου L γύρω από τον κόμβο Κόμβος με μη-επιτρεπτό balance Μακρύτερο μονοπάτι από αυτόν προς οποιοδήποτε φύλλο τύπου RR μία περιστροφή τύπου L H Αν υπάρχουν περισσότερα του ενός μονοπάτια ίδιου μήκους και το μήκος αυτό είναι B D το μεγαλύτερο, μπορεί να γίνει επιλογή εκείνου του μονοπατιού που οδηγεί στις λιγότερες και πιο απλές περιστροφές! ΗΥ24 - Παναγιώτα Φατούρου 29 C E F G I J K

30 Δένδρα AVL Διαγραφή Σχήμα 5.3: I. Μανωλόπουλος, Δομές Δεδομένων, Μια προσέγγιση με την Pascal, Εκδόσεις Art of Text. R R κρίσιμος κόμβος Παράδειγμα Διαδοχική διαγραφή των κλειδιών 12, 71, 52, 1, 19, 4, και 56. Aντικατάσταση από 1 και μια αριστερή περιστροφή γύρω από το 1 ΗΥ24 - Παναγιώτα Φατούρου 3

31 Δένδρα AVL Διαγραφή - Πολυπλοκότητα Ποια είναι η πολυπλοκότητα της AVLDelete()? Ο(ύψος δένδρου) για τους ακόλουθους λόγους: Για τη διαγραφή του κόμβου το κόστος είναι Ο(ύψος δένδρου). Για κάθε κόμβο u στο P1, θα γίνει εύρεση των δύο πρώτων ακμών του μονοπατιού που καθορίζει το ύψος του u (βάσει του balance του u και του balance του επομένου του u στο μοναπάτι). Θα γίνουν Ο(ύψος δένδρου) περιστροφές και κάθε μια κοστίζει Ο(1). Τα balances αλλάζουν μόνο για τους κόμβους του P1 και τους κόμβους που «εμπλέκονται» στις περιστροφές. Θεώρημα ύψος δένδρου AVL = O(logn) Χρονική Πολυπλοκότητα = O(logn) ΗΥ24 - Παναγιώτα Φατούρου 31

32 2-3 Δένδρα Ιδέα: Το δένδρο είναι τέλεια εξισορροπημένο (όλα τα φύλλα έχουν το ίδιο βάθος) αλλά δεν είναι δυαδικό. Σε ένα 2-3 δένδρο ένας κόμβος που δεν είναι φύλλο έχει δύο παιδιά και σε αυτόν αποθηκεύεται ένα στοιχείο του συνόλου (ένας τέτοιος κόμβος λέγεται 2-κόμβος), ή έχει τρία παιδιά και σε αυτόν αποθηκεύονται δύο στοιχεία του συνόλου (τότε ο κόμβος λέγεται 3-κόμβος). Κάθε φύλλο που αποθηκεύει ένα στοιχείο του συνόλου είναι 2- κόμβος, ενώ κάθε φύλλο που αποθηκεύει δύο στοιχεία του συνόλου είναι 3-κόμβος. Σχήμα 7.7: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 Με κατάλληλη διευθέτηση κόμβων και των δύο ειδών, μπορούμε να φτιάξουμε δένδρο στο οποίο όλα τα φύλλα έχουν το ίδιο βάθος και το οποίο αποθηκεύει οποιοδήποτε επιθυμητό πλήθος κλειδιών. ΗΥ24 - Παναγιώτα Φατούρου 32

33 Ιδιότητες 2-3 Δένδρων 1. Όλα τα φύλλα έχουν το ίδιο βάθος και αποθηκεύουν 1 ή 2 στοιχεία. 2. Κάθε εσωτερικός κόμβος: είτε αποθηκεύει ένα στοιχείο και έχει δύο παιδιά, ή αποθηκεύει δύο στοιχεία και έχει τρία παιδιά. 3. Το δένδρο είναι ταξινομημένο. ΗΥ24 - Παναγιώτα Φατούρου 33

34 2-3 Δένδρα Ένα 2-3 δένδρο είναι ταξινομημένο αν για κάθε κόμβο v ισχύουν τα εξής: Αν ο v είναι 2-κόμβος, τα κλειδιά όλων των στοιχείων που βρίσκονται στο αριστερό υποδένδρο του v είναι μικρότερα από το κλειδί του v, ενώ εκείνα των στοιχείων που βρίσκονται στο δεξί υποδένδρο του v είναι μεγαλύτερα από εκείνα του v. Αν ο v είναι 3-κόμβος, το κλειδί (έστω Κ 1 ) του πρώτου στοιχείου του v είναι μικρότερο από το κλειδί (έστω K 2 ) του δεύτερου στοιχείου του v. Επίσης, τα κλειδιά όλων των στοιχείων στο πρώτο υποδένδρο του v είναι μικρότερα από K 1, τα κλειδιά όλων των στοιχείων στο δεύτερο υποδένδρο του v είναι μεταξύ του Κ 1 και του Κ 2, ενώ τα κλειδιά του τρίτου υποδένδρου του v είναι μεγαλύτερα από K 2. ΗΥ24 - Παναγιώτα Φατούρου 34

35 2-3 Δένδρα Μεταξύ όλων των 2-3 δένδρων ύψους h, ποιο είναι εκείνο με τους λιγότερους κόμβους; Εκείνο του οποίου όλοι οι εσωτερικοί κόμβοι είναι 2-κόμβοι. Ποιο είναι το ύψος αυτού του δένδρου? log 2 n Μεταξύ όλων των 2-3 δένδρων ύψους h, ποιο είναι εκείνο με τους περισσότερους κόμβους; Εκείνο του οποίου όλοι οι εσωτερικοί κόμβοι είναι 3-κόμβοι. Ποιο είναι το ύψος αυτού του δένδρου? log 3 n Πως θα υλοποιήσουμε την LookUp() σε ένα 2-3 δένδρο? Το δένδρο είναι ταξινομημένο. Το ύψος ενός 2-3 δένδρου με n κόμβους είναι Θ(logn). Πολυπλοκότητα LookUp; O(logn) ΗΥ24 - Παναγιώτα Φατούρου 35

36 2-3 Δένδρα - Εισαγωγή Σχήμα 7.8: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, Εύρεση του φύλλου w στο οποίο θα έπρεπε σύμφωνα με την ιδιότητα της ταξινόμησης να εισαχθεί το νέο στοιχείο. 2. Διατήρηση των κόμβων του μονοπατιού που ακολουθήθηκε σε στοίβα. 3. Αν το w είναι 2-κόμβος, προσθήκη του νέου στοιχείου στο w και τερματισμός. ΗΥ24 - Παναγιώτα Φατούρου 36

37 2-3 Δένδρα Εισαγωγή Μη επιτρεπτός κόμβος Μη επιτρεπτός κόμβος 4. Αν το w είναι 3-κόμβος, Παράδειγμα: Εισαγωγή Ο μετατρέπεται σε κόμβο που w Μη επιτρεπτός κόμβος πρέπει να αποθηκεύσει 3 στοιχεία το οποίο είναι μη επιτρεπτό. Αντικαθιστούμε το w με δύο 2-κόμβους, έναν που αποθηκεύει το 1ο και έναν που αποθηκεύει το 3ο στοιχείο του w και το μεσαίο στοιχείο του w μεταφέρεται στον πατρικό του κόμβο. Αν δεν υπάρχει πατρικός κόμβος πηγαίνουμε στο βήμα Αν ο πατρικός κόμβος είναι 2-κόμβος, μετατρέπεται σε 3-κόμβο και ο αλγόριθμος τερματίζει. Διαφορετικά, θέτουμε w = <πατρικός κόμβος του w> και επιστρέφουμε στο βήμα Η διαδικασία αυτή επαναλαμβάνεται μέχρι να βρούμε χώρο για το κλειδί σε κάποιο κόμβο στο μονοπάτι προς τη ρίζα ή να φτάσουμε στη ρίζα. Αν συμβεί το δεύτερο, η ρίζα χωρίζεται σε 2 κόμβους και ένας νέος κόμβος που αποτελεί τον πατρικό κόμβο αυτών των δύο κόμβων αποθηκεύει το μεσαίο στοιχείο που θα έπρεπε να αποθηκευθεί στη ρίζα. Έτσι, το ύψος του δένδρου αυξάνεται κατά 1. w ΗΥ24 - Παναγιώτα Φατούρου 37 w

38 2-3 Δένδρα - Διαγραφή Μπορεί να προκύψει το αντίστροφο πρόβλημα: μετά τη διαγραφή, κάποιος κόμβος μπορεί να έχει ένα μόνο παιδί. μη επιτρεπτός κόμβος Παράδειγμα Διαγραφή Ε ΗΥ24- Παναγιώτα Φατούρου ΗΥ24 - Παναγιώτα Φατούρου 38

39 2-3 Δένδρα - Διαγραφή 1. Αν το προς διαγραφή κλειδί Κ περιέχεται σε κόμβο φύλλο, το διαγράφουμε. Διαφορετικά, το κλειδί (έστω Κ ) που είναι επόμενο του K στην ενδο-διατεταγμένη διάσχιση περιέχεται σε φύλλο, οπότε Ν Ν αντικαθιστούμε το Κ με το Κ και διαγράφουμε το Κ. 2. Έστω Ν ο κόμβος από τον οποίο διαγράφεται το κλειδί. Αν ο Ν εξακολουθεί να έχει ένα κλειδί, ο αλγόριθμος τερματίζει. 3. Αν ο Ν είναι η ρίζα, τον διαγράφουμε. Σε αυτή την περίπτωση, ο Ν μπορεί να έχει ένα ή κανένα παιδί. Αν δεν έχει κανένα παιδί, το δένδρο μετά τη διαγραφή είναι άδειο. Διαφορετικά, το παιδί του Ν είναι η νέα ρίζα του δένδρου. S Ν S Ν Σχήμα 7.8: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 ΗΥ24 - Παναγιώτα Φατούρου 39

40 2-3 Δένδρα - Διαγραφή 3. Διαφορετικά, ο Ν έχει τουλάχιστον έναν αδελφικό κόμβο. Έστω Ν ένας οποιοσδήποτε αδελφικός κόμβος του Ν. Έστω P ο πατέρας των Ν, Ν και έστω ότι S είναι το κλειδί του P που χωρίζει τα δύο υπο-δένδρα (που οδηγούν από τον P στους Ν και Ν ). a. Ο Ν είναι 3-κόμβος ακριβώς στα αριστερά (ακριβώς στα δεξιά) του Ν. Μετακινούμε το S στο Ν και αντικαθιστούμε το S στον πατέρα του με το δεξιότερο (αριστερότερο) κλειδί του Ν. Αν οι Ν και Ν είναι εσωτερικοί κόμβοι, μετατρέπουμε το δεξιότερο (αριστερότερο) υποδένδρο του Ν σε αριστερότερο (δεξιότερο) υποδένδρο του Ν. Οι Ν, Ν έχουν πλέον ένα κλειδί ο καθένας και ο αλγόριθμος τερματίζει. b. Ο Ν είναι 2-κόμβος. Συνενώνουμε το S και το κλειδί του Ν σε έναν νέο 3-κόμβο, ο οποίος αντικαθιστά τους Ν, Ν και απoτελεί το μοναδικό παιδί του P (ο οποίος απομένει τώρα χωρίς κλειδί). Θέτουμε Ν = P και επαναλαμβάνουμε από το βήμα 3. S Ν Ν Ν S ΗΥ24 - Παναγιώτα Φατούρου 4 Ν

41 2-3 Δένδρα - Διαγραφή Ένα ακόμη παράδειγμα S N S N N H L B,D J M N N H L B,D J M Πολυπλοκότητα Insert(); Πολυπλοκότητα Delete(); Πολυπλοκότητα LookUp(); Ο(logn) Ο(logn) Ο(logn) ΗΥ24 - Παναγιώτα Φατούρου 41

42 Κοκκινόμαυρα Δένδρα Σχήμα 13.1(α): Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 Ένα κοκκινόμαυρο δένδρο είναι ένα ταξινομημένο δυαδικό δένδρο, στο οποίο κάθε κόμβος περιέχει ένα επιπλέον στοιχείο πληροφορίας, το χρώμα του, το οποίο μπορεί να είναι είτε μαύρο ή κόκκινο. Αν κάποιο παιδί κάποιου κόμβου δεν υφίσταται, ο αντίστοιχος δείκτης είναι nill. Θεωρούμε ότι δείκτες με τιμή nill είναι δείκτες προς εξωτερικούς κόμβους (φύλλα) του δυαδικού δένδρου, ενώ οι συνήθεις κόμβοι που αποθηκεύουν κλειδιά αποτελούν τους εσωτερικούς κόμβους του δένδρου. ΗΥ24 - Παναγιώτα Φατούρου 42

43 Ιδιότητες Κοκκινόμαυρων Δένδρων 1. Κάθε κόμβος έχει είτε κόκκινο είτε μαύρο χρώμα. 2. Το χρώμα της ρίζας είναι πάντα μαύρο. 3. Κάθε NILL κόμβος έχει μαύρο χρώμα. 4. Αν ένας κόμβος έχει κόκκινο χρώμα, τότε και τα δύο παιδιά του έχουν μαύρο χρώμα. 5. Κάθε μονοπάτι από οποιονδήποτε κόμβο προς οποιοδήποτε εξωτερικό κόμβο φύλλο που είναι απόγονός του περιέχει το ίδιο πλήθος μαύρων κόμβων. ΗΥ24 - Παναγιώτα Φατούρου 43

44 Ύψος Κοκκινόμαυρου Δένδρου Μαύρο ύψος bh(v) κόμβου v Πλήθος μαύρων κόμβων σε κάθε μονοπάτι από τον κόμβο v σε οποιοδήποτε εξωτερικό κόμβο nill του υποδένδρου του, χωρίς να συμπεριλαμβάνουμε τον v. Πρόταση: Ένα κόκκινο μαύρο δένδρο με n εσωτερικούςκόμβους έχει ύψος το πολύ 2log(n). Διαίσθηση: Τουλάχιστον οι μισοί κόμβοι σε κάθε μονοπάτι από τη ρίζα σε φύλλο είναι μαύροι. Γιατί; ΗΥ24 - Παναγιώτα Φατούρου 44

45 Ύψος Κοκκινόμαυρου Δένδρου Απόδειξη Αποδεικνύουμε επαγωγικά ότι το υπο-δένδρο με ρίζα κάποιο κόμβο v περιέχει τουλάχιστον 2 bh(v) -1 εσωτερικούς κόμβους (η επαγωγή ως προς το ύψος του v). Βάση επαγωγής: αν ο v έχει ύψος τότε είναι φύλλο (δηλαδή εξωτερικός κόμβος), οπότε ο αριθμός των εσωτερικών κόμβων στο υποδένδρο που εκφύεται από τον v είναι, όπως απαιτείται. Επαγωγική Υπόθεση: Δοθέντος ενός οποιουδήποτε κόμβου v, υποθέτουμε ότι ο ισχυρισμός ισχύει για τα παιδιά του v. ΗΥ24 - Παναγιώτα Φατούρου 45

46 Ύψος Κοκκινόμαυρου Δένδρου Απόδειξη (συνέχεια) Επαγωγικό Βήμα: Αποδεικνύουμε τον ισχυρισμό για τον κόμβο v. Έστω w ένα οποιοδήποτε παιδί του v. Τότε, bh(w) bh(v) 1 (αν ο w είναι κόκκινος τότε bh(w) = bh(v), ενώ αν ο w είναι μαύρος τότε bh(w) bh(v) -1). Αφού το ύψος του w είναι πιο μικρό από εκείνο του v, από επαγωγική υπόθεση, το υποδένδρο που εκφύεται από τον w έχει 2 bh(w) -1 2 bh(v)-1-1 εσωτερικούς κόμβους. Άρα, το υποδένδρο που εκφύεται από τον v έχει τουλάχιστον 2* (2 bh(v)-1-1 ) + 1 = 2 bh(v) -1 εσωτερικούς κόμβους, όπως απαιτείται. Άρα, το υπο-δένδρο που εκφύεται από οποιονδήποτε κόμβο v περιέχει τουλάχιστον 2 bh(v) -1 εσωτερικούς κόμβους. (1) Έστω h το ύψος του δένδρου και r η ρίζα. Είναι bh(r) h/2, αφού βάσει της ιδιότητας 4, σε οποιοδήποτε μονοπάτι από τη ρίζα προς οποιονδήποτε εξωτερικό κόμβο, τουλάχιστον οι μισοί κόμβο (εξαιρουμένης της ίδιας της ρίζας) θα πρέπει να είναι μαύροι. Πως υλοποιείται η LookUp(); Άρα, από (1), n 2 h/2-1 h 2log(n). Ποια είναι η πολυπλοκότητα της; ΗΥ24 - Παναγιώτα Φατούρου 46

47 Κοκκινόμαυρα Δένδρα - Εισαγωγή Αλγόριθμος Εισαγωγή του νέου στοιχείου με τον ίδιο τρόπο όπως σε ταξινομημένο δυαδικό δένδρο. Το μονοπάτι που ακολουθείται για την εισαγωγή του νέου κόμβου αποθηκεύεται σε στοίβα. Ο νέος κόμβος χαρακτηρίζεται κόκκινος. Αν οι ιδιότητες χρωματισμού εξακολουθούν να ισχύουν, ο αλγόριθμοςτερματίζεται. Διαφορετικά, εκτελούνται ενέργειες που αποσκοπούν στην αποκατάσταση των ιδιοτήτων του δένδρου (οι οποίες περιγράφονται στη συνέχεια). Για να απαιτείται η εκτέλεση ενεργειών αποκατάστασης του δένδρου θα πρέπει: Ο πατρικός κόμβος του νέο-εισαχθέντα κόμβου να είναι κόκκινος. Γιατί; Ο πατρικός αυτός κόμβος δεν μπορεί να είναι η ρίζα. Ο παππούς του νέο-εισαχθέντα κόμβου να είναι μαύρος. Γιατί; ΗΥ24 - Παναγιώτα Φατούρου 47

48 Κοκκινόμαυρα Δένδρα - Εισαγωγή Περιγραφή Ενεργειών Αποκατάστασης Υποθέτουμε ότι ο πατέρας του x είναι αριστερό παιδί του παππού του x (η αντίθετη περίπτωση είναι συμμετρική). Αν ο x και ο πατέρας του x είναι κόκκινοι, απαιτούνται ενέργειες αποκατάστασης. Περίπτωση 1: Ο αδελφικός κόμβος y του πατέρα του x είναι κόκκινος. Τότε, αλλάζουμε το χρώμα του πατέρα του x και του αδελφικού του κόμβου y σε μαύρο και το χρώμα του παππού του x σε κόκκινο. Εκτελούμε την εντολή x = παππούς του x. Επαναλαμβάνουμε ξεκινώντας από το Βήμα 1. Σχήμα 13.5: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 48

49 Κοκκινόμαυρα Δένδρα - Εισαγωγή Περιγραφή Ενεργειών Αποκατάστασης (συνέχεια) Περίπτωση 2: Ο y (αδελφικός κόμβος του πατέρα του x) είναι μαύρος και ο x είναι δεξί παιδί του πατέρα του. Ανάγουμε την περίπτωση αυτή στην περίπτωση 3 με την εκτέλεση μιας αριστερής περιστροφής γύρω από τον πατέρα του x. (Η περίπτωση που ο x είναι αριστερό παιδί του πατέρα του είναι συμμετρική). Περίπτωση 3: Ο x είναι αριστερό παιδί του πατέρα του. Το χρώμα του πατέρα του x αλλάζει σε μαύρο και του παππού σε κόκκινο. Εκτελείται μια δεξιά περιστροφή γύρω από τον παππού του x. Σχήμα 13.6: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 49

50 Κοκκινόμαυρα Δένδρα Εισαγωγή Κάποιες από τις Συμμετρικές Περιπτώσεις νέο x y y x y y νέο x x Περίπτωση 1: Ο αδελφικός κόμβος y του πατρικού κόμβου του x είναι κόκκινος. (Συμμετρική περίπτωση που ο πατρικός κόμβος του x είναι δεξιό παιδί του παππού του x.) ΗΥ24 - Παναγιώτα Φατούρου 5

51 Κοκκινόμαυρα Δένδρα Εισαγωγή Κάποιες από τις Συμμετρικές Περιπτώσεις a Περίπτωση 2 a Περίπτωση 3 x δ β x a β γ δ β γ γ δ Περίπτωση 2: Ο y (αδελφικός κόμβος του πατέρα του x) είναι μαύρος και ο x είναι αριστερό παιδί του πατέρα του. Ανάγουμε την περίπτωση αυτή στην περίπτωση 3 με την εκτέλεση μιας δεξιάς περιστροφής. Περίπτωση 3: Ο x είναι δεξιό παιδί του πατέρα του. Το χρώμα του πατέρα του x αλλάζει σε μαύρο και του παππού σε κόκκινο. Εκτελείται μια αριστερή περιστροφή. ΗΥ24 - Παναγιώτα Φατούρου 51

52 Κοκκινόμαυρα Δένδρα Εισαγωγή - Ψευδοκώδικας RedBlackTree-Insert(pointer R, Key k) { /* Ο R είναι δείκτης στη ρίζα του δένδρου και το K είναι το προς-εισαγωγή κλειδί. Θεωρώ ότι το δένδρο είναι διπλά συνδεδεμένο */ } y = nill; z = R; while (z!= null) { // έχω αγνοήσει τους ελέγχους για το αν το κλειδί K βρίσκεται ήδη στο δένδρο y = z; // οι οποίοι χρειάζονται if (K < z->key) z = z->lc; else z = z->rc; } x = newcell(); x->key = K; x->lc = x->rc = null; x->color = RED; x->p = y; if (y == null) (κάνε το x ρίζα του δένδρου); else if (x->key < y->key) y->lc = x; // τοποθέτηση του x ως else y->rc = x; ColorPropertiesInsert(R,x) // κατάλληλου παιδιού του y ΗΥ24 - Παναγιώτα Φατούρου 52

53 (1) Κοκκινόμαυρα Δένδρα Εισαγωγή ColorPropertiesInsert(pointer R, pointer x) { while (x->p->color == RED) { //αν το χρώμα του πατέρα του x είναι επίσης κόκκινο if (x->p == x->p->p->lc) { // αν o πατέρας του x είναι αριστερό παιδί του παππού του x y = x->p->p->rc; // o y είναι ο αδελφικός κόμβος του πατέρα του x if (y->color == RED) { x->p->color = BLACK; // πατέρας και αδελφικός κόμβος πατέρα y->color = BLACK; // γίνονται και οι δυο μαύροι x->p->p->color = RED; // ο παππούς γίνεται κόκκινος x = x->p->p; // (νέο x = παππούς x); και επαναλαμβάνουμε } else { if (x == x->p->rc) { // o x είναι δεξιό παιδί του πατέρα του Περίπτωση 2 x = x->p; // ο πατέρας του x θα παίξει το ρόλο του x (δείτε σχήματα) LeftRotate(R, x); // αριστερή περιστροφή γύρω από τον πατέρα του x } x->p->color = BLACK; x->p->p->color = RED; RightRotate(R, x->p->p); } } else ( (1) με εναλλαγή του LC με RC και το αντίστροφο, καθώς και του LeftRotate με RightRotate και το αντίστροφο); } } ΗΥ24 - Παναγιώτα Φατούρου 53

54 Κοκκινόμαυρα Δένδρα Εισαγωγή Παράδειγμα Ποια είναι η χρονική πολυπλοκότητα της RBInsert()? Σχήμα 13.4: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 54

55 Κοκκινόμαυρα Δένδρα Διαγραφή Η διαγραφή γίνεται με παρόμοιο τρόπο όπως σε ταξινομημένο δυαδικό δένδρο και στη συνέχεια ελέγχεται αν οι ιδιότητες των κοκκινόμαυρων δένδρων ισχύουν ή όχι και γίνονται κατάλληλες ενέργειες αν απαιτούνται. Έστω y ο κόμβος που θα διαγραφεί από το δένδρο. Αν το χρώμα του y είναι κόκκινο, ο y διαγράφεται και ο αλγόριθμος τερματίζει. Γιατί δεν προκύπτει πρόβλημα με τις ιδιότητες χρωματισμού του δένδρου σε αυτή την περίπτωση? Δεν υπάρχουν κόμβοι των οποίων το μαύρο ύψος να έχει μεταβληθεί στο δένδρο Δεν έχει πραγματοποιηθεί καμία απευθείας σύνδεση μεταξύ δύο κόκκινων κόμβων Δεδομένου ότι, αν ο y ήταν κόκκινος, δεν μπορεί να είναι ο ριζικός κόμβος, ο ριζικός κόμβος παραμένει μαύρος. ΗΥ24 - Παναγιώτα Φατούρου 55

56 Κοκκινόμαυρα Δένδρα Διαγραφή Αν το χρώμα του y είναι μαύρο, η διαγραφή του μπορεί να δημιουργήσει τα εξής προβλήματα: Αν ο y ήταν ο ριζικός κόμβος και τεθεί ως νέος ριζικός κάποιος κόκκινος κόμβος, έχει παραβιαστεί η ιδιότητα 2. Αν ο μοναδικός θυγατρικός κόμβος x του y και ο πατρικός κόμβος p του y ήταν και οι δυο κόκκινοι, έχει παραβιαστεί η ιδιότητα 4. Λόγω της διαγραφής του y, όλα τα μονοπάτια που περιείχαν τον y (πριν τη διαγραφή) έχουν ένα μαύρο κόμβο λιγότερο (μετά τη διαγραφή) μετά τη διαγραφή, όλοι οι πρόγονοι του y στο δένδρο παραβιάζουν την ιδιότητα 5. ΗΥ24 - Παναγιώτα Φατούρου 56

57 Κοκκινόμαυρα Δένδρα Διαγραφή Υποθέτουμε ότι η μαύρη ιδιότητα του y μεταφέρεται στο παιδί του (έστω x), το οποίο αν είναι μαύρο γίνεται διπλά μαύρο (που είναι μη επιτρεπτό). Φανταζόμαστε πως κάθε κόμβος έχει ένα και μοναδικό κουπόνι που καθορίζει το χρώμα του (μαύρο ή κόκκινο). Τότε, ένας διπλά-μαύρος κόμβος είναι σαν να έχει δύο κουπόνια με μαύρο χρώμα. Αυτό είναι μη επιτρεπτό και ο κόμβος πρέπει να απαλλαγεί από το επιπρόσθετο μαύρο κουπόνι. Προκειμένου να επιτευχθεί αυτό, το επιπρόσθετο μαύρο κουπόνι μεταφέρεται προς τα πάνω (ακολουθώντας το μονοπάτι από τον κόμβο προς τη ρίζα) μέχρι είτε: να φθάσουμε στη ρίζα, ή να βρούμε έναν κόκκινο κόμβο που τον επαναχρωματίζουμε μαύρο και ο αλγόριθμος τερματίζει, ή να μπορούν να εκτελεστούν κατάλληλες περιστροφές και επαναχρωματισμοί κάποιων κόμβων ώστε να επιλυθεί το πρόβλημα. ΗΥ24 - Παναγιώτα Φατούρου 57

58 Κοκκινόμαυρα Δένδρα Διαγραφή Θεωρώ ότι το δένδρο υλοποιείται με κόμβο φρουρό. Έτσι, όλοι οι nill δείκτες δείχνουν στον κόμβο φρουρό. (Αυτό εξυπηρετεί στη μείωση των ελέγχων που απαιτούνται στον κώδικα που θα παρουσιαστεί σε επόμενες διαφάνειες). Σχήμα 13.1: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 58

59 Κοκκινόμαυρα Δένδρα- Διαγραφή p Έστω x το παιδί του κόμβου που διαγράφεται, w ο αδελφικός κόμβος και p ο πατέρας του x. Αν ο x είναι διπλά μαύρος, ο w δεν μπορεί να είναι ο κόμβος φρουρός. Γιατί; Υποθέτουμε ότι ο x είναι αριστερό παιδί του πατρικού του κόμβου (η αντίθετη περίπτωση είναι συμμετρική) Διακρίνουμε περιπτώσεις ως προς το χρώμα του w. Σχήμα 13.7: Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26 ΗΥ24 - Παναγιώτα Φατούρου 59

60 Κοκκινόμαυρα Δένδρα - Διαγραφή p Βασική Ιδέα Σε όλες τις περιπτώσεις, ο μετασχηματισμός διατηρεί το πλήθος των μαύρων κόμβων (συμπεριλαμβανομένου και του extra μαύρου κουπονιού του x) από τον ριζικό κόμβο του εικονιζόμενου υποδένδρου (συμπεριλαμβανομένου του ριζικού) μέχρι καθένα από τα υποδένδρα α,β,γ,δ,ε και ζ. ΗΥ24 - Παναγιώτα Φατούρου 6

61 1. Περίπτωση 1: Ο w είναι κόκκινος. Αλλάζουμε το χρώμα του w σε μαύρο και του p σε κόκκινο και εκτελούμε μια αριστερή περιστροφή γύρω από τον πατέρα του x. Έτσι, μεταπίπτουμε στην περίπτωση 2, 3, ή 4. Κοκκινόμαυρα Δένδρα - Διαγραφή p Περίπτωση 2: Ο w είναι μαύρος κόμβος και τα δύο παιδιά του w είναι μαύρα. Αλλάζουμε το χρώμα του w σε κόκκινο, του x σε μαύρο (από διπλά μαύρο) και μεταφέρουμε το μαύρο που αφαιρέσαμε από τους w, x στον p. Αν ο p ήταν κόκκινος γίνεται μαύρος και ο αλγόριθμος τερματίζει. Διαφορετικά, ο p γίνεται διπλά μαύρος και ο αλγόριθμος επαναλαμβάνεται με x = p. ΗΥ24 - Παναγιώτα Φατούρου 61

62 3.Περίπτωση 3: Το w->lc είναι κόκκινο και το w->rc μαύρο. Αλλάζω το χρώμα του w σε κόκκινο και του w->lc σε μαύρο και εκτελώ μια περιστροφή γύρω από το w Μεταπίπτουμε στην περίπτωση 4 4. Περίπτωση 4: Το w->rc είναι κόκκινο. Αλλάζω το χρώμα του w->rc σε μαύρο, του w σε ότι ήταν το χρώμα του p και του p σε μαύρο και εκτελώ μια περιστροφή γύρω από τον p. Ο αλγόριθμος τερματίζει. Κοκκινόμαυρα Δένδρα - Διαγραφή p ΗΥ24 - Παναγιώτα Φατούρου 62

63 Κοκκινόμαυρα Δένδρα Διαγραφή - Ψευδοκώδικας RedBlack-Delete(pointer R, pointer z) { if (z->rc == NULL OR z->lc == NULL) y = z; else y = TreeSuccessor(R,z); if (y->lc!= NULL) x = y->lc; // ο x δείχνει στο μοναδικό παιδί του y else x = y->rc; x->p = y->p; if (y->p == NULL) (κάνε το x ρίζα του δένδρου); else if (y == y->p->lc) y->p->lc = x; else y->p->rc = x; if (y!= z) { z->key = y->key; // αντιγραφή όλων των πεδίων δεδομένων (αντιγραφή των υπολοίπων πεδίων δεδομένων του y στο z); } if (y->color == BLACK) ColorPropertiesDelete(R,x); } return y; // αν ο z έχει ένα ή κανένα παιδί, διαγράφεται ο ίδιος ο z // διαφορετικά, διαγράφεται ο επόμενος κόμβος στην ενδ/γμένη διάσχιση // αν ο y είναι αριστερό παιδί του πατέρα του // αν ο προς διαγραφή κόμβος είναι ο επόμενος στην ενδ/γμένη διάσχιση // αν η διαγραφή αφορούσε κόμβο με χρώμα μαύρο, εκτέλεση κατάλληλων // ενεργειών για την επαναφορά των ιδιοτήτων χρωματισμού του δένδρου ΗΥ24 - Παναγιώτα Φατούρου 63

64 Κοκκινόμαυρα Δένδρα Διαγραφή - Ψευδοκώδικας ColorPropertiesDelete(pointer R, pointer x) { while (x!= R AND x->color == BLACK) { if (x == x->p->lc) { // αν ο x είναι αριστερό παιδί (2) w = x->p->rc; if (w->color == RED) { w->color = BLACK; // Περίπτωση 1 x->p->color = RED; // Περίπτωση 1 LeftRotation(R, x->p); // Περίπτωση 1 w = x->p->rc; // Περίπτωση 1 // αν αδελφικός του x κόκκινος } if (w->lc->color == BLACK AND w->rc->color == BLACK) { // αν και τα δύο παιδιά του w είναι μαύρα w->color = RED; // Περίπτωση 2 x = x->p; // Περίπτωση 2 } else { if (w->rc->color == BLACK) { // αν δεξιό παιδί του x μαύρο w->lc->color = BLACK; // Περίπτωση 3 w->color = RED; // Περίπτωση 3 RightRotation(R,w); // Περίπτωση 3 w = x->p->rc; // Περίπτωση 3 } w->color = x->p->color; // Περίπτωση 4 x->p->color = BLACK; // Περίπτωση 4 } w->rc->color = BLACK;//Περίπτωση 4 LeftRotation(R, x->p);//περίπτωση 4 x = R; // Περίπτωση 4 } /* else */ } /* if */ else (ίδια με (2) με εναλλαγή του LC με RC και το αντίστροφο, καθώς και του LeftRotate με RightRotate και το αντίστροφο); } x->color = BLACK; Ποια είναι η χρονική πολυπλοκότητα της RBDelete()? ΗΥ24 - Παναγιώτα Φατούρου 64

65 Αναφορές Το υλικό της ενότητας αυτής περιέχεται στα ακόλουθα βιβλία: Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 Chapter 7: Tree Structures for Dynamic Dictionaries Cormen, Leiserson, Rivest & Stein, Εισαγωγή στους Αλγορίθμους, Πανεπιστημιακές Εκδόσεις Κρήτης, 26. Κεφάλαιο 13: Μελανέρυθρα Δένδρα Ι. Μανωλόπουλος, Δομές Δεδομένων, Μια προσέγγιση με την Pascal, Εκδόσεις Art of Text. Κεφάλαιο 5: Ισοζυγισμένα Δένδρα ΗΥ24 - Παναγιώτα Φατούρου 65

66 Τέλος Ενότητας

67 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

68 Σημειώματα

69 Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4. [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί..

70 Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Παναγιώτα Φατούρου. «Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα». Έκδοση: 1.. Ηράκλειο/Ρέθυμνο 213. Διαθέσιμο από τη δικτυακή διεύθυνση:

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Άσκηση 1 Ενότητα : Υλοποίηση Λεξικών µε

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

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

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

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

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) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

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

αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών

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

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

Ενότητα 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): επιστρέφει

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

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

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1 Περιγραφή και Διαβασμα Από

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

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

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

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

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

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ενδρικές οµές για Υλοποίηση υναµικών Λεξικών υναµικά λεξικά λειτουργίες LookUp( ), Insert( ) και Delete( ) Αναζητούµε δένδρα για την αποτελεσµατική υλοποίηση

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν

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

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας 1 Περιεχόμενα 1 η Άσκηση... 4 2 η Άσκηση... 7 3 η Άσκηση... 10 Χρηματοδότηση... 12 Σημείωμα Αναφοράς... 13 Σημείωμα Αδειοδότησης...

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης

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

Διοικητική Λογιστική

Διοικητική Λογιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 10: Προσφορά και κόστος Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

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

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

Εκτενείς Δομές Δεδομένων Εκτενείς Δομές Δεδομένων Εισαγωγή Δομές που βασίζονται σε συγκρίσεις : Ισοζυγισμένα δέντρα εύρεσης ( δέντρα τα φύλλα των οποίων απέχουν της ίδιας τάξεως μεγέθους, απόσταση απο τη ρίζα) Υψοζυγισμένα δέντρα

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Κεφάλαιο Γ.4: Ολοκλήρωση με Αντικατάσταση Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων 1 η Διάλεξη Ενδεικτικές λύσεις ασκήσεων 1 Περιεχόμενα 1 η Άσκηση... 3 2 η Άσκηση... 3 3 η Άσκηση... 3 4 η Άσκηση... 3 5 η Άσκηση... 4 6 η Άσκηση... 4 7 η Άσκηση... 4 8 η Άσκηση... 5 9 η Άσκηση... 5 10

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα

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

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 3: Μοντέλα βάσεων δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 2 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι µια

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων Ενότητα 1 Εισαγωγή στις βάσεις δεδομένων 2 1.1 Βάσεις Δεδομένων Ένα βασικό στοιχείο των υπολογιστών είναι ότι έχουν τη δυνατότητα να επεξεργάζονται εύκολα και γρήγορα μεγάλο πλήθος δεδομένων και πληροφοριών.

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων 4 η Διάλεξη Ενδεικτικές λύσεις ασκήσεων 1 Περιεχόμενα 1 η Άσκηση... 3 2 η Άσκηση... 3 3 η Άσκηση... 4 4 η Άσκηση... 5 5 η Άσκηση... 6 6 η Άσκηση... 7 Χρηματοδότηση... 8 Σημείωμα Αναφοράς... 9 Σημείωμα

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

Ψηφιακή Επεξεργασία Εικόνων

Ψηφιακή Επεξεργασία Εικόνων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Ψηφιακή Επεξεργασία Εικόνων Ενότητα # 14: Τμηματοποίηση με χρήση τυχαίων πεδίων Markov Καθηγητής Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Τμηματοποίηση εικόνων

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

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου Θεοδωρίδης Προκόπης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

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

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

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

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος διατίθεται

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Αριθμητικά Συστήματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Ένα Αριθμητικό Σύστημα αποτελείται από ένα

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος) Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #5: Δομές επιλογής Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Δομές επιλογής MATLAB Programming Α. Καλαμπούνιας Η δομή επιλογής if Η δομή if στο

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 7: Παράγωγος, ελαστικότητα, παραγώγιση συναρτήσεων (Φροντιστήριο) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης

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

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

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

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

Τεχνολογία Πολιτισμικού Λογισμικού

Τεχνολογία Πολιτισμικού Λογισμικού Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Τεχνολογία Πολιτισμικού Λογισμικού Ενότητα 12: SQL και πολιτισμικά δεδομένα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6: 1η εργαστηριακή άσκηση και προσομοίωση με το SPICE Χατζόπουλος Αλκιβιάδης Τμήμα Ηλεκτρολόγων Μηχανικών και

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

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 7: Βέλτιστος έλεγχος συστημάτων διακριτού χρόνου Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα

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

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση Ενότητα 7: Κανονικότητες, συμμετρίες και μετασχηματισμοί στο χώρο Δημήτρης Χασάπης Τμήμα Εκπαίδευσης και Αγωγής στην Προσχολική Ηλικία

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

Διδακτική Πληροφορικής

Διδακτική Πληροφορικής Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διδακτική Πληροφορικής Ενότητα 4: Διδακτικός μετασχηματισμός βασικών εννοιών πληροφορικής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 2 3 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο. Όλα

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

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Αλγόριθμοι ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Ανάπτυξη Λογισμικού Η διαδικασία ανάπτυξης λογισμικού μπορεί να παρομοιαστεί

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη Ενότητα 8: Η Οικονομική πολιτική της Ευρωπαϊκής Ένωσης Γρηγόριος Ζαρωτιάδης Άδειες Χρήσης Το

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 8η

Εισαγωγή στους Αλγορίθμους Ενότητα 8η Εισαγωγή στους Αλγορίθμους Ενότητα 8η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Εισαγωγή στους Η/Υ Ενότητα 2β: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Εύρεση συνάρτησης Boole όταν είναι γνωστός μόνο ο πίνακας αληθείας.

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος)

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος) Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων

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

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας Κβαντική Επεξεργασία Πληροφορίας Ενότητα 11: Είδη και μετασχηματισμοί πινάκων Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Είδη και μετασχηματισμοί

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 5: Διαχείριση Έργων υπό συνθήκες αβεβαιότητας

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 5: Διαχείριση Έργων υπό συνθήκες αβεβαιότητας Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 5: Διαχείριση Έργων υπό συνθήκες αβεβαιότητας Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Εισαγωγή στους Αλγορίθμους Ενότητα η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός Κεφάλαιο Β.9: Το Διαφορικό Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Γεώργιος Νικ. Μπροδήμας Κεφάλαιο Β.9: Το Διαφορικό 1 Άδειες

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

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

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

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

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας Κβαντική Επεξεργασία Πληροφορίας Ενότητα 4: Κλασσική και Κβαντική Πιθανότητα Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός της ενότητας

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10: ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΑΠΑΓΟΡΕΥΤΙΚΟ ΑΡΙΘΜΟ ΠΕΡΙΠΤΩΣΕΩΝ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10: ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΑΠΑΓΟΡΕΥΤΙΚΟ ΑΡΙΘΜΟ ΠΕΡΙΠΤΩΣΕΩΝ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10: ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΑΠΑΓΟΡΕΥΤΙΚΟ ΑΡΙΘΜΟ ΠΕΡΙΠΤΩΣΕΩΝ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Ασκήσεις 1 Ανδριανός Ε. Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής Σελίδα 2 1. Σκοποί ενότητας... 5 2.

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 11: Διανύσματα (Φροντιστήριο) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων &

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

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

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

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 6: Συμπίεση Έργου

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 6: Συμπίεση Έργου Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 6: Συμπίεση Έργου Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Εργαστήριο 2 Καθηγητές: Αβούρης Νικόλαος, Παλιουράς Βασίλης, Κουκιάς Μιχαήλ, Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άσκηση 2 ου εργαστηρίου

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

Διοικητική Λογιστική

Διοικητική Λογιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 6: Μέθοδοι ς Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Διαίρει και Κυρίευε 7 9 4 4 7 9 7 7 9 4 4 9 7 7 9 9 4 4 Διαίρει και Κυρίευε

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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