Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

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

Download "Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας"

Transcript

1 Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Περιεχόμενα 14.1 Διωνυμικά Δένδρα Διωνυμικές Ουρές Εισαγωγή στοιχείου σε διωνυμική ουρά Διαγραφή μεγίστου από διωνυμική ουρά Ένωση δύο διωνυμικών ουρών Κατασκευή διωνυμικής ουράς με Ν κλειδιά Σωροί Fibonacci Δυναμικό σωρού Fibonacci Εύρεση ελάχιστου κλειδιού Εισαγωγή κλειδιού Ένωση δύο σωρών Fibonacci Εξαγωγή ελάχιστου κλειδιού Μείωση κλειδιού Διαγραφή κλειδιού Βιβλιογραφία Στο κεφάλαιο αυτό μελετάμε τους σωρούς Fibonacci οι οποίοι βασίζονται στις διωνυμικές ουρές. Οι σωροί Fibonacci επιπλέον των πράξεων που επιτρέπουν οι κλασικοί σωροί (δηλαδή, εισαγωγή, εύρεση ελαχίστου και εξαγωγή ελαχίστου) επιτρέπουν την ταχεία εκτέλεση και άλλων πράξεων, όπως ένωση, διαγραφή, και μείωση κλειδιού Διωνυμικά Δένδρα Ένα δυαδικό δένδρο αριστερά διατεταγμένο σε σωρό είναι ένα δυαδικό δένδρο στο οποίο το κλειδί κάθε κόμβου είναι μεγαλύτερο από ή ίσο με όλα τα κλειδιά του αριστερού υποδένδρου αυτού του κόμβου. Ένα δυαδικό δένδρο αριστερά διατεταγμένο σε σωρό, στο οποίο το δεξί υποδένδρο της ρίζας είναι κενό και το αριστερό υποδένδρο είναι πλήρες, σχηματίζει έναν σωρό δύναμης του 2. Στην Εικόνα 14.1 (αριστερά) φαίνεται ένας σωρός δύναμης 2 με 8 κλειδιά, στον οποίον μπορούμε να παρατηρήσουμε ότι το δεξί υποδένδρο της ρίζας είναι κενό ένω το αριστερό είναι πλήρες και το κλειδί κάθε κόμβου είναι μεγαλύτερο από ή ίσο με κάθε κλειδί του αριστερού του υποδένδρου. Ο σωρός δύναμης του 2 οφείλει το όνομά του στο γεγονός ότι το πλήθος κόμβων ενός τέτοιου σωρού είναι δύναμη του 2. Ένα διωνυμικό δένδρο (binomial tree) είναι ένα δένδρο το οποίο με την αντιστοίχιση αριστερού παιδιού και δεξιού αδελφού δίνει σωρό δύναμης 2 (στην Εικόνα 14.1 (δεξιά) φαίνεται ένα διωνυμικό δένδρο το οποίο με την αντιστοίχιση αριστερού παιδιού και δεξιού αδελφού δίνει το σωρό δύναμης 2 στα 255

2 αριστερά). Ένα διωνυμικό δένδρο δεν είναι απαραίτητα δυαδικό. Το δυωνυμικό δένδρο της Εικόνας 14.1 (δεξιά) έχει βαθμό 3. Εικόνα 14.1: (αριστερά) Ένας σωρός δύναμης 2 με 8 κλειδιά. (δεξιά) Ένα δυωνυμικό δένδρο το οποίο με την αντιστοίχιση αριστερού παιδιού και δεξιού αδελφού δίνει το σωρό δύναμης 2 στα αριστερά. Ένα διωνυμικό δένδρο νοητικά παρίσταται, όπως φαίνεται στην Εικόνα 14.1 (δεξιά) ωστόσο υλοποιείται ως δυαδικό δένδρο με την αντιστοίχιση αριστερού παιδιού και δεξιού αδελφού (Εικόνα 14.2). Εικόνα 14.2: Υλοποίηση του διωνυμικού δένδρου της Εικόνας 14.1 (δεξιά). Καθώς ένας σωρός δύναμης 2 έχει πλήθος κλειδιών ίσο με δύναμη του 2, και τα διωνυμικά δένδρα έχουν πλήθος κλειδιών ίσο με δύναμη του 2. Το διωνυμικό δένδρο, με 2 k κλειδιά αναπαρίσταται με Βk (Εικόνα 14.3). Μάλιστα, το διωνυμικό δένδρο Βk μπορει να προκύψει από τη σύνδεση της ρίζας ενός διωνυμικού δένδρου Β k-1 ως αριστερότερο παιδί της ρίζας ενός άλλου διωνυμικού δένδρου Β k-1. Έτσι, το Βk συνίσταται από τον κόμβο-ρίζα με k παιδιά, που από δεξιά προς τα αριστερά είναι κόμβοι-ρίζες διωνυμικών δένδρων Β 0, Β 1, Β 2,..., Β k-1 (Εικόνα 14.4). Συνεπώς, το διωνυμικό δένδρο Βk, που έχει 2 k κόμβους, έχει ( k ) κόμβους στο επίπεδο j 0. Υπενθυμίζεται ότι j k ( k j ) = 2 k. j=0 256

3 Εικόνα 14.3: Τα διωνυμικά δένδρα Β0, Β1, Β2, Β3 και Β4. Εικόνα 14.4: Γενική μορφή του διωνυμικού δένδρου Βk. Συνοψίζοντας, υπενθυμίζουμε ότι το πλήθος των κόμβων σε ένα διωνυμικό δένδρο είναι δύναμη του 2, κανένας κόμβος δεν έχει κλειδί μεγαλύτερο από το κλειδί της ρίζας και τα διωνυμικά δένδρα είναι διατεταγμένα σε σωρό (heap-ordered). Επιπλέον, δύο διωνυμικά δένδρα ίδιου μεγέθους συνενώνονται εύκολα ως εξής: Βρίσκουμε το διωνυμικό δένδρο στον κόμβο-ρίζα του οποίου βρίσκεται το μεγαλύτερο κλειδί και προσθέτουμε ως παιδί τον κόμβο-ρίζα του άλλου διωνυμικού δένδρου προς συνένωση (Εικόνες 14.5 και 14.6). Τονίζεται και πάλι ότι δύο διωνυμικά δένδρα συνενώνονται, μόνον εάν έχουν ίδιο μέγεθος. Εικόνα 14.5: Συνένωση δύο διωνυμικών δένδρων με 8 κλειδιά σε ένα δυωνυμικό δένδρο με 16 κλειδιά. 257

4 Εικόνα 14.6: Η συνένωση της Εικόνας 14.5 με αναπαράσταση των διωνυμικών δένδρων με δυαδικά δένδρα Διωνυμικές Ουρές Μια διωνυμική ουρά (binomial queue) είναι ένα σύνολο διωνυμικών δένδρων διαφορετικού μεγέθους ανά δύο (Εικόνα 14.7). Ο ορισμός των διωνυμικών ουρών συνεπάγεται ότι η δομή μιας τέτοιας ουράς καθορίζεται από τη δυαδική αναπαράσταση του πλήθους των κόμβων της. Για παράδειγμα, η διωνυμική ουρά της Εικόνας 14.7 έχει μέγεθος 13 = (1101)2 και, άρα, αποτελείται από διωνυμικά δένδρα Β0, Β2, Β3 (τα ψηφία της δυαδικής αναπαράστασης του 13 που είναι ίσα με 1 βρίσκονται στις θέσεις 0, 2 και 3 (από δεξιά προς τα αριστερά)). Ως αποτέλεσμα, μια διωνυμική ουρά με Ν κλειδιά αποτελείται από το πολύ log N + 1 διωνυμικά δένδρα. Εικόνα 14.7: Μια διωνυμική ουρά που αποτελείται από διωνυμικά δένδρα Β0, Β2, Β Εισαγωγή στοιχείου σε διωνυμική ουρά Η εισαγωγή ενός επιπλέον στοιχείου σε διωνυμική ουρά ξεκινά με το σχηματισμό ενός νέου διωνυμικού δένδρου Β 0, που περιέχει το στοιχείο αυτό και, κατόπιν, όσο υπάρχουν δύο διωνυμικά δένδρα ίδιου μεγέθους, αυτά συνενώνονται, όπως περιγράψαμε στο τέλος της προηγούμενης παραγράφου, δημιουργώντας ένα νέο διωνυμικό δένδρο διπλάσιου μεγέθους. Για παράδειγμα, η εισαγωγή του κλειδιού 3 στη διωνυμική ουρά της Εικόνας 14.7 φαίνεται στις Εικόνες , όπου στα δεξιά κάθε εικόνας εμφανίζονται τα βήματα της πρόσθεσης του αριθμού 1 στο πλήθος των στοιχείων (13) της διωνυμικής ουράς της Εικόνας

5 Εικόνα 14.8: Το 3 αρχικά εισάγεται ως ένα διωνυμικό δένδρο Β0. Εικόνα 14.9: Το δύο διωνυμικά δένδρα Β0 συνενώνονται σε ένα δυωνυμικό δένδρο Β1. Εικόνα 14.10: Η τελική διωνυμική ουρά. Αν στη διωνυμική ουρά της Εικόνας εισαχθεί το 13, τότε απλώς προκύπτει η διωνυμική ουρά της Εικόνας Εικόνα

6 Τέλος εάν στη διωνυμική ουρά της Εικόνας εισαχθεί το 4, τότε έχουμε συνεχείς συνενώσεις διωνυμικών δένδρων, έως ότου προκύψει τελικά ένα διωνυμικό δένδρο Β 4 (Εικόνα 14.20). Εικόνα Εικόνα Εικόνα Εικόνα

7 Εικόνα Εικόνα Εικόνα Εικόνα

8 Εικόνα Καθώς η συνένωση δύο διωνυμικών δένδρων γίνεται σε σταθερό χρόνο, η εισαγωγή ενός στοιχείου σε διωνυμική ουρά με Ν στοιχεία απαιτεί Ο(log N) χρόνο Διαγραφή μεγίστου από διωνυμική ουρά Εάν η διωνυμική ουρά αποτελείται από ένα διωνυμικό δένδρο, έστω Β k, τότε το μέγιστο βρίσκεται στη ρίζα του δένδρου. Η διαγραφή του γίνεται με διαγραφή του κόμβουρίζας και αποσύνδεση των παιδιών του, που θα δημιουργήσει k διωνυμικά δένδρα, ένα Β 0, ένα Β 1,... και ένα Β k-1 (Εικόνα 14.21). Εικόνα 14.21: Διαγραφή μεγίστου από διωνυμικό δένδρο. Εάν η διωνυμική ουρά αποτελείται από περισσότερα από ένα διωνυμικά δένδρα, τότε βρίσκουμε το μέγιστο (σε κάποιον από τους κόμβους-ρίζες των διωνυμικών δένδρων που αποτελούν τη διωνυμική ουρά) και το διαγράφουμε από το δένδρο, το οποίο αποσυνδέεται σε μικρότερα διωνυμικά δένδρα (Εικόνα 14.22) με αποτέλεσμα να χρειάζεται τελικά να ενώσουμε δύο διωνυμικές ουρές. Την ένωση διωνυμικών ουρών θα δούμε στην επόμενη παράγραφο. 262

9 Εικόνα 14.22: Η διαγραφή του μεγίστου απαιτεί ένωση δύο διωνυμικών ουρών. Είτε η διωνυμική ουρά αποτελείται από ένα διωνυμικό δένδρο είτε από περισσότερα, η διαγραφή του μεγίστου από διωνυμική ουρά με Ν κλειδιά μπορεί να εκτελεσθεί σε Ο(log Ν) χρόνο Ένωση δύο διωνυμικών ουρών Η ένωση δύο διωνυμικών ουρών συνίσταται στην ένωση των αντίστοιχων διωνυμικών δένδρων ίδιου μεγέθους (εάν υπάρχουν) ξεκινώντας από το μικρότερο μέγεθος προς το μεγαλύτερο. Για παράδειγμα, ας θεωρήσουμε την ένωση των δύο διωνυμικών ουρών που φαίνονται στην Εικόνα Τα βήματα της διαδικασίας ένωσης και τα αντίστοιχα βήματα της πρόσθεσης των δυαδικών αναπαραστάσεων του πλήθους κόμβων των δύο ουρών φαίνονται στις Εικόνες Εικόνα 14.23: Δύο διωνυμικές ουρές. Εικόνα

10 Εικόνα Εικόνα Εικόνα

11 Εικόνα 14.28: Η τελική διωνυμική ουρά. Η διαδικασία ένωσης διωνυμικών ουρών συνεπάγεται ότι μπορεί να εκτελεσθεί σε Ο(log N) χρόνο Κατασκευή διωνυμικής ουράς με Ν κλειδιά Μια διωνυμική ουρά μπορεί να κατασκευασθεί με διαδοχκές εισαγωγές των στοιχείων της σε αρχικά κενή ουρά. Δεδομένου ότι η εισαγωγή ενός στοιχείου σε διωνυμική ουρά με Κ κλειδιά μπορεί να εκτελεσθεί σε Ο(log Κ) χρόνο, η κατασκευή μιας διωνυμικής ουράς με Ν κλειδιά μπορεί να εκτελεσθεί σε Ο(Ν log Ν) χρόνο. Με πιο προσεκτική ανάλυση, ωστόσο, μπορούμε να αποδείξουμε ότι η κατασκευή της διωνυμικής ουράς απαιτεί Ο(Ν) χρόνο. Παρατηρούμε ότι για κάθε εισαγωγή στοιχείου έχουμε μια πράξη ένωσης διωνυμικών δένδρων για κάθε δυαδικό ψηφίο που αλλάζει από 1 σε 0 στη δυαδική αναπαράσταση του πλήθους κλειδιών στη διωνυμική ουρά η οποία προκύπτει μετά την εισαγωγή του στοιχείου. Δεδομένου ότι προσθέτουμε ένα στοιχείο κάθε φορά, η δυαδική αναπαράσταση του πλήθους κλειδιών της ουράς μεταβάλλεται, όπως κατά την αύξηση δυαδικού μετρητή με log N δυαδικού ψηφία. Αλλά τότε το 1ο ψηφίο από το τέλος αλλάζει με κάθε αύξηση, το 2ο αλλάζει με κάθε δεύτερη αύξηση, το 3ο με κάθε τέταρτη αύξηση κ.ο.κ. Σε ακολουθία Ν αυξήσεων, το i-οστό ψηφίο από το τέλος αλλάζει συνολικά i 1 Ν φορές, oπότε το συνολικό πλήθος k αλλαγών είναι i=1 < 2N. Καθώς η ένωση δύο διωνυμικών δένδρων του ίδιου 2 i 1 μεγέθους απαιτεί σταθερό χρόνο, η κατασκευή της διωνυμικής ουράς μπορεί να εκτελεσθεί σε Ο(Ν) χρόνο. N Σωροί Fibonacci Ο σωρός Fibonacci (Fibonacci heap) βασίζεται στη διωνυμική ουρά (δηλαδή αποτελεί ένα σύνολο από δένδρα), αλλά έχει πιο χαλαρή δομή. Στην Εικόνα φαίνεται ένας σωρός Fibonacci Η με n[h] = 14 κλειδιά. Ο σωρός αποτελείται από δένδρα (τα οποία ενδέχεται να μην είναι διωνυμικά, αλλά προέρχονται από διωνυμικά δένδρα, από τα οποία έχουν αποκοπεί κλάδοι οι κόμβοι που έχουν χάσει παιδιά φαίνονται με κίτρινο χρώμα), ενώ το ελάχιστο στοιχείο του σωρού δείχνεται από το δείκτη min[h]. 265

12 Εικόνα 14.29: Ένας σωρός Fibonacci. Με χρήση αντισταθμιστικής ανάλυσης μπορεί να δειχθεί ότι σε έναν σωρό Fibonacci με Ν κλειδιά η εισαγωγή, η ένωση, η εύρεση ελαχίστου και η μείωση κλειδιού εκτελούνται σε Ο(1) χρόνο και η διαγραφή και η εξαγωγή ελαχίστου σε Ο(log N) χρόνο. Η αποτελεσματική υλοποίηση ενός σωρού Fibonacci βασίζεται στο ότι κάθε κόμβος x αποθηκεύει εκτός από το κλειδί του: δείκτη parent[x] στον κόμβο-γονέα του, δείκτη child[x] σε ένα από τα παιδιά του και δείκτες left[x] και right[x] στον αριστερό και τον δεξιό αδελφό του σχηματίζοντας μια κυκλική διπλά συνδεδεμένη λίστα. Εικόνα 14.30: Η υλοποίηση του σωρού Fibonacci της Εικόνας Επιπλέον, για κάθε κόμβο x αποθηκεύουμε το βαθμό του degree[x] και ένα δυαδικό ψηφίο mark[x] για την επισήμανη του κόμβου, εάν χρειαστεί. Έτσι, στην Εικόνα 14.30, αν x είναι ο κόμβος που αποθηκεύει το κλειδί 3, έχουμε degree[x] = 3 και mark[x] = 0, ενώ, αν x είναι ο κόμβος που αποθηκεύει το κλειδί 18, έχουμε degree[x] = 1 και mark[x] = 1. Ακόμη, σημειώνουμε ότι σε ένα σωρό Fibonacci με n κλειδιά, ο μέγιστος βαθμός που μπορεί να έχει οποιοσδήποτε κόμβος είναι D(n) = O(log n) Δυναμικό σωρού Fibonacci 266

13 Για την ανάλυση της πολυπλοκότητας χρόνου των λειτουργιών σε ένα σωρό Fibonacci θα χρησιμοποιήσουμε αντισταθμιστική ανάλυση και, συγκεκριμένα, την ενεργειακή μέθοδο. Γι αυτό, ορίζουμε το ακόλουθο δυναμικό: Φ(Η) = c ( t(h) + 2 m(h) ), όπου t(h) είναι το πλήθος των δένδρων στο σωρό, m(h) είναι το πλήθος των επισημασμένων κόμβων και c σταθερά. Για απλότητα, θεωρούμε ότι c = 1 υποθέτοντας ότι μία μονάδα δυναμικού αντιστοιχεί σε κάποια συγκεκριμένη σταθερή ποσότητα εργασίας. Έτσι το δυναμικό απλοποιείται σε Φ(Η) = t(h) + 2 m(h). Για παράδειγμα, η τιμή του δυναμικού για το σωρό Fibonacci της Εικόνας είναι Φ(Η) = = 11, καθώς ο σωρός αποτελείται από 5 δένδρα και έχει 3 επισημασμένους κόμβους Εύρεση ελάχιστου κλειδιού Αρκεί να επιστρέψουμε το κλειδί στον κόμβο που δείχνεται από το δείκτη min[h]. Το πραγματικό κόστος c findmin της εύρεσης είναι Ο(1). Πρέπει όμως να φράξουμε και το αντισταθμιστικό κόστος. Το δυναμικό της δομής μετά την εύρεση είναι Φ (Η) = t(h) + 2 m(h) = Φ(Η) και, άρα, το αντισταθμιστικό κόστος είναι c findmin + Φ (Η) - Φ(Η) = Ο(1) Εισαγωγή κλειδιού Για την εισαγωγή ενός κλειδιού δημιουργείται ένα νέο δένδρο με μόνο έναν κόμβο που αποθηκεύει το κλειδί προς εισαγωγή και το δένδρο συνδέεται δίπλα στον κόμβο που δείχνεται από το δείκτη min[h]. Επιπλέον, εάν το εισαγόμενο κλειδί είναι το ελάχιστο, τότε ο δείκτης min[h] μετατοπίζεται να δείχνει το νέο κόμβο. Η Εικόνα δείχνει το αποτέλεσμα της εισαγωγής του κλειδιού 8 στον σωρό Fibonacci της Εικόνας 14.29, ενώ η Εικόνα το αποτέλεσμα της εισαγωγής του κλειδιού 2. Το πραγματικό κόστος c insert της εισαγωγής είναι Ο(1). Πρέπει και πάλι να φράξουμε και το αντισταθμιστικό κόστος. Το δυναμικό της δομής μετά την εισαγωγή είναι Φ (Η) = t (H) + 2 m(h) = t(h) m(h) = Φ(Η) + 1 και, άρα, το αντισταθμιστικό κόστος είναι c insert + Φ (Η) - Φ(Η) = Ο(1). 267

14 Εικόνα 14.31: Εισαγωγή του κλειδιού 8 στο σωρό Fibonacci της Εικόνας Εικόνα 14.32: Εισαγωγή του κλειδιού 2 στο σωρό Fibonacci της Εικόνας Ένωση δύο σωρών Fibonacci Η ένωση δύο σωρών Fibonacci Η 1 και Η 2 πραγματοποιείται με ένωση των λιστών των ριζικών κόμβων τους χρησιμοποιώντας τους δείκτες min[η 1 ] και min[η 2 ]. Ο δείκτης min[η] του σωρού που προκύπτει δείχνει στον κόμβο με το ελάχιστο κλειδί μεταξύ των κόμβων που δείχνονται από τους min[η 1 ] και min[η 2 ]. Για παράδειγμα, η Εικόνα δείχνει το αποτέλεσμα της ένωσης των δύο σωρών Fibonacci της Εικόνας

15 Εικόνα 14.33: Δύο σωροί Fibonacci. Εικόνα 14.34: Ένωση των σωρών Fibonacci της Εικόνας Το πραγματικό κόστος c unite της ένωσης δύο σωρών Fibonacci είναι Ο(1). Το δυναμικό της δομής μετά την ένωση είναι Φ(Η) = t(h) + 2 m(h) = t(h 1 ) + t(h 2 ) + 2 m(h 1 ) + 2 m(h 2 ) = Φ(H 1 ) + Φ(H 2 ) και, άρα, το αντισταθμιστικό κόστος είναι c unite + Φ(Η) - (Φ(H 1 ) + Φ(H 2 )) = Ο(1) Εξαγωγή ελάχιστου κλειδιού Η εξαγωγή του ελάχιστου κλειδιού συνίσταται στη διαγραφή του κόμβου με το ελάχιστο κλειδί, μεταφορά των παιδιών του στο ριζικό επίπεδο και ενοποίηση δένδρων. Συγκεκριμένα, η διαδικασία έχει ως εξής: 1. z := min[h]; 2. εάν z NULL 3. τότε για κάθε παιδί x του z 4. πρόσθεσε τον κόμβο x στο ριζικό επίπεδο του σωρού H; 5. parent[x] := NULL; 6. διάγραψε τον κόμβο z από το ριζικό επίπεδο του σωρού H; 7. εάν z = right[z] 8. τότε min[h] := NULL; 9. άλλως min[h] := right[z]; 10. CONSOLIDATE(H); 11. n[h] := n[h] + 1; 12. επίστρεψε τον κόμβο z; όπου η διαδικασία CONSOLIDATE(H) ενοποιεί δένδρα στο ριζικό επίπεδο ως εξής (πριν από την ενοποίηση θεωρούμε πίνακα Α μεγέθους D(n[H]) + 1, τα στοιχεία του οποίου (θέσεις 0, 1,... D(n[H])) έχουν αρχικοποιηθεί σε NULL): CONSOLIDATE(H) 269

16 1. για κάθε κόμβο w στο ριζικό επίπεδο του σωρού H 2. x := w; d := degree[x]; 3. ενόσω A[d] NULL 4. y := A[d]; 5. εάν key[x] > key[y] 6. τότε ενάλλαξε τα x και y; 7. LINK(H, y, x); 8. A[d] := NULL; d := d + 1; 9. A[d] := x; 10. min[h] := NULL; 11. για i = 0, 1,, D(n[H]) 12. εάν A[i] NULL 13. τότε πρόσθεσε τον κόμβο A[i] στο ριζικό επίπεδο του σωρού H; 14. εάν min[h] = NULL ή key[a[i]] < key[min[h]] 15. τότε min[h] := A[i]; και LINK(H, y, x) 1. διάγραψε τον κόμβο y από το ριζικό επίπεδο του σωρού H; 2. κάνε τον y παιδί του x και αύξησε κατά 1 το βαθμό degree[x]; 3. mark[y] := 0; Για παράδειγμα, ας θεωρήσουμε το σωρό Fibonacci που φαίνεται στην Εικόνα από τον οποίο θέλουμε να εξαγάγουμε το ελάχιστο κλειδί 3. Ως πρώτο βήμα προσθέτουμε στο ριζικό επίπεδο του σωρού όλα τα παιδιά του κόμβου που αποθηκευει το ελάχιστο κλειδί και τον διαγράφουμε από το ριζικό επίπεδο (Εικόνα 14.36). Εικόνα Εικόνα

17 Στη συνέχεια εκτελούμε ενοποίηση με τη διαδικασία CONSOLIDATE(H), για την οποία χρειάζομαστε έναν πίνακα Α με θέσεις για βαθμούς δένδρων 0, 1, 2, 3 (Εικόνα 14.37). Τα βήματα της διαδικασίας φαίνονται στις Εικόνες Εικόνα Εικόνα Εικόνα

18 Εικόνα Εικόνα Εικόνα

19 Εικόνα Εικόνα Εικόνα

20 Εικόνα Εικόνα Εικόνα

21 Εικόνα Εικόνα Εικόνα

22 Εικόνα 14.52: Ο τελικός σωρός Fibonacci μετά την ενοποίηση. Το πραγματικό κόστος c extractmin της εξαγωγής του ελάχιστου κλειδιού είναι Ο(D(n) + t(h)). Το δυναμικό της δομής πριν από την εξαγωγή είναι Φ(Η) = t(h) + 2 m(h). Το δυναμικό της δομής μετά την εξαγωγή είναι Φ (Η) (D(n) + 1) + 2 m(h). Άρα, η μεταβολή του δυναμικού είναι Φ (Η) - Φ(Η) (D(n) + 1) + 2 m(h) - t(h) - 2 m(h) = D(n) - t(h) + 1 και, άρα, το αντισταθμιστικό κόστος είναι c extractmin + Φ (Η) - Φ(Η) = Ο(D(n)) = Ο(log n) Μείωση κλειδιού Η εκτέλεση αυτής της πράξης έχει ως αποτέλεσμα τα δένδρα του σωρού Fibonacci να μην παραμένουν δυωνυμικά. Για να μειώσουμε το κλειδί ενός κόμβου x από key[x] σε k < key[x] εκτελούμε τα εξής: 1. key[x] := k; y := parent[x]; 2. εάν y NULL και key[x] < key[y] 3. τότε CUT(H, x, y); 4. CASCADINGCUT(H, y); 5. εάν key[x] < key[min[h]] 6. τότε min[h] := x; όπου οι διαδικασίες CUT(H,x,y) και CASCADINGCUT(H,y) είναι ως εξής: CUT(H, x, y) 1. διάγραψε τον κόμβο x από τη λίστα παιδιών του κόμβου y και μείωσε κατά 1 τον βαθμό degree[y] του y; 2. εισάγαγε τον x στη λίστα ριζικών κόμβων του σωρού Η; 3. parent[x] := NULL; mark[x] := 0; CASCADINGCUT(H, y) 1. z := parent[y]; 2. εάν z NULL 3. τότε εάν mark[y] = 0 4. τότε mark[y] := 1; 7. άλλως CUT(H, y, z); 8. CASCADINGCUT(H, z); Για παράδειγμα, ας θεωρήσουμε το σωρό Fibonacci της Εικόνας και έστω ότι θέλουμε να μειώσουμε την τιμή του κλειδιού 46 σε 15. Το κλειδί του κόμβου που 276

23 αποθηκεύει το 46 μειώνεται σε 15 και ο κόμβος μετατοπίζεται στη λίστα ριζικών κόμβων του σωρού, ενώ, επίσης, ο κόμβος-γονέας (που αποθηκεύει το 24) επισημαίνεται (Εικόνα 14.54). Ελέγχεται εάν χρειάζεται να ενημερωθεί ο δείκτης min[h], αλλά η τιμή του ελάχιστου κλειδιού δεν έχει αλλάξει, οπότε δεν αλλάζει και ο δείκτης min[h]. Παρόμοια, εάν στον σωρό που προκύπτει μειώσουμε το κλειδί 35 σε 5, το κλειδί του κόμβου που αποθηκεύει το 35 μειώνεται σε 5 και ο κόμβος μετατοπίζεται στη λίστα ριζικών κόμβων του σωρού (Εικόνα 14.55). Επίσης, επειδή ο κόμβος-γονέας (που αποθηκεύει το 26) είναι ήδη επισημασμένος, εκτελείται κλιμακωτή αποκοπή σε αυτόν τον κόμβο, με αποτέλεσμα να μεταφερθεί στη λίστα ριζικών κόμβων του σωρού (Εικόνα 14.56) και να συνεχίσουμε με τον κόμβο-γονέα του. Επειδή και αυτός ο κόμβος είναι επισημασμένος, εκτελείται και πάλι κλιμακωτή αποκοπή σε αυτόν τον κόμβο που μεταφέρεται στη λίστα ριζικών κόμβων του σωρού (Εικόνα 14.57) και συνεχίζουμε με τον κόμβο-γονέα του. Ο κόμβος-γονέας είναι η ρίζα, οπότε η κλιμακωτή αποκοπή σταματά. Τέλος, παρατηρούμε ότι άλλαξε η τιμή του ελάχιστου κλειδιού, οπότε ενημερώνεται και ο δείκτης min[h] (Εικόνα 14.58). Εικόνα Εικόνα Εικόνα

24 Εικόνα Εικόνα Εικόνα Για τον υπολογισμό του αντισταθιστικού κόστους της διαγραφής, ας υποθέσουμε ότι η διαδικασία κλιμακωτής αποκοπής εκτελέστηκε k φορές. Το πραγματικό κόστος c decreasekey της μείωσης κλειδιού είναι Ο(k). Το δυναμικό της δομής πριν από τη μείωση είναι Φ(Η) = t(h) + 2 m(h). Το δυναμικό της δομής μετά τη μείωση είναι Φ (Η) = t (H) + 2 m (H) (t(h) + k) + 2 ( m(h) k + 2), καθώς τα δένδρα στο σωρό αυξάνονται κατά k, ενώ τουλάχιστον k-2 παύουν να είναι επισημασμένοι. Άρα η μεταβολή του δυναμικού είναι Φ (Η) - Φ(Η) t(h) + k + 2 m(h) 2 k + 4 t(h) 2 m(h) = 4 k. Συνεπώς, το αντισταθμιστικό κόστος της μείωσης κλειδιού είναι c decreasekey + Φ (Η) - Φ(Η) = Ο(1) Διαγραφή κλειδιού Έστω x ο κόμβος τον οποίο θέλουμε να διαγράψουμε. Η διαγραφή γίνεται σε δύο βήματα: 1. Μειώνουμε το κλειδί του x σε τιμή μικρότερη από το ελάχιστο κλειδί στο σωρό. 2. Εκτελούμε εξαγωγή του ελάχιστου κλειδιού (που είναι το μειωμένο κλειδί του κόμβου x). 278

25 Το αντισταθμιστικό κόστος της διαγραφής ισούται με το άθροισμα των αντισταθμιστικών κοστών της μείωσης κλειδιού και της εξαγωγής του ελάχιστου κλειδιού. Από τις παραγράφους και συμπεραίνουμε ότι το αντισταθμιστικό κόστος της διαγραφής είναι O(1) + O(log n) = O(log n). Βιβλιογραφία Cormen, T., Leiserson, C., Rivest, R., & Stain, C. (2001). Introduction to Algorithms. MIT Press (2nd edition). Tarjan, R. E. (1983). Data Structures and Network Algorithms. Society for Industrial and Applied Mathematics. Γεωργακόπουλος, Γ. Φ. (2011). Δομές Δεδομένων. Πανεπιστημιακές εκδόσεις Κρήτης. 279

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 2017 18 Μαΐου 2017 papagianno@ceid.upatras.gr 1 Περιεχόμενα Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί

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

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

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

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

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

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

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

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

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

Κεφάλαιο 6 Ουρές Προτεραιότητας Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

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

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Κεφάλαιο 2 Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Σωρός και Ταξινόμηση

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

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

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

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

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,

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

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

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

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

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

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 18: B-Δένδρα Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

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

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

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

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

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

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

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

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

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

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

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

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

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

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

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

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

Κεφάλαιο 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. Σωρός και Ταξινόµηση

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

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

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

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

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

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

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

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

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

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

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

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap Επιμέλεια διαφανειών: Δ. Φωτάκης (λίγες τροποποιήσεις: Α. Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Δομές Δεδομένων (Αναπαράσταση,)

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

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

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

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

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

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

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

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

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

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

Αντισταθμιστική ανάλυση

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

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

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο Σχεδίαση Αλγορίθμων Άπληστοι Αλγόριθμοι http://delab.csd.auth.gr/~gounaris/courses/ad 1 Άπληστοι αλγόριθμοι Προβλήματα βελτιστοποίησης ηςλύνονται με μια σειρά επιλογών που είναι: εφικτές τοπικά βέλτιστες

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

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

Κεφάλαιο 7 Λεξικά και Δυαδικά Δένδρα Αναζήτησης Κεφάλαιο 7 Λεξικά και Δυαδικά Δένδρα Αναζήτησης Περιεχόμενα 7.1 Ο αφηρημένος τύπος δεδομένων λεξικού... 133 7.1.1 Διατεταγμένα λεξικά... 134 7.2 Στοιχειώδεις υλοποιήσεις με πίνακες και λίστες... 135 7.2.1

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Ουρές προτεραιότητας

Ουρές προτεραιότητας Ουρές προτεραιότητας Πελάτες... στο ταµείο µιας τράπεζας Κάθε πελάτης µε ένα νούµερο/αριθµός προτεραιότητας! Όσοοαριθµός είναι µεγάλος, τόσο οι πελάτες είναι πιο ενδιαφέροντες(!) ένα µόνο ταµείο ανοικτό

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση Merge Sort Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

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

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

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου Συμπίεση Η συμπίεση δεδομένων ελαττώνει το μέγεθος ενός αρχείου : Εξοικονόμηση αποθηκευτικού χώρου Εξοικονόμηση χρόνου μετάδοσης Τα περισσότερα αρχεία έχουν πλεονασμό στα δεδομένα τους Είναι σημαντική

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

Δυναμική Διατήρηση Γραμμικής Διάταξης

Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Εισαγωγή νέου στοιχείου y αμέσως μετά από το στοιχείο x. x y Διαγραφή στοιχείου y. y Έλεγχος της σειράς

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

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

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

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

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

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

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

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών, 4 Μαρτίου 2019 ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 13 Μαϊου

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος:

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

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

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

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

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

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

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι

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

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας.

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

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

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

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

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

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης Λύσεις Παλιών Θεµάτων Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης Θέµα Φεβρουάριος 2003 1) Έστω ένας υπερκύβος n-διαστάσεων. i. Να βρεθεί ο αριθµός των διαφορετικών τρόπων

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

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

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

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

Κατακερματισμός (Hashing)

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

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

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

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

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

Αρχικά, μεταβαίνετε στην ομώνυμη επιλογή της Καρτέλας ΦΟΡΕΙΣ. Επιλέγοντας Βιβλιοθήκη Μονάδας εμφανίζεται η παρακάτω εικόνα «Λίστα βιβλίων».

Αρχικά, μεταβαίνετε στην ομώνυμη επιλογή της Καρτέλας ΦΟΡΕΙΣ. Επιλέγοντας Βιβλιοθήκη Μονάδας εμφανίζεται η παρακάτω εικόνα «Λίστα βιβλίων». Η λειτουργικότητα δίνει τη δυνατότητα καταγραφής, εμφάνισης και διαχείρισης των βιβλίων που διατηρείτε στη σχολική σας μονάδα καθώς και τον τρόπο απόκτησης αυτών. Αρχικά, μεταβαίνετε στην ομώνυμη επιλογή

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

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

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

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

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ομές εδομένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για

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