ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ισορροπηµένα Δέντρα Κεφάλαιο 13. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

Download "ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ισορροπηµένα Δέντρα Κεφάλαιο 13. Ε. Μαρκάκης Επίκουρος Καθηγητής"

Transcript

1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ισορροπηµένα Δέντρα Κεφάλαιο 13 Ε. Μαρκάκης Επίκουρος Καθηγητής

2 Περίληψη Εισαγωγή Τυχαιοποιηµένα ΔΔΑ (Randomized Binary Search trees) Στρεβλά ΔΔΑ (Splay trees) Καθοδικά δέντρα (Top-Down trees) Δέντρα κόκκινου-µαύρου (Red-Black trees) Λίστες Παράλειψης (Skip lists) Χαρακτηριστικά επιδόσεων - συµπεράσµατα Δοµές Δεδοµένων 15-2

3 Εισαγωγή Μειονεκτήµατα Δέντρων Δυαδικής Αναζήτησης (ΔΔΑ) Κακή επίδοση χειρότερης περίπτωσης Εµφανίζεται σε µερικές πρακτικές περιπτώσεις Παράδειγµα: εισαγωγή ήδη ταξινοµηµένων κλειδιών Λύση: διατήρηση των δέντρων σε ισορροπηµένη µορφή Όλοι οι εξωτερικοί κόµβοι στο ίδιο ή σε δύο διαδοχικά επίπεδα Προτεινόµενες δοµές: Τυχαιοποιηµένα ΔΔΑ Στρεβλά ΔΔΑ Δέντρα Δέντρα κόκκινου-µαύρου Πρόβληµα: διατήρηση ισορροπίας µετά από αλλαγές Δοµές Δεδοµένων 15-3

4 Εισαγωγή Πρόβληµα: διατήρηση ισορροπίας µετά από αλλαγές Πιθανή λύση: Περιοδική πλήρης ανακατασκευή (µετά από κάποιο αριθµό εισαγωγών) private Node balancer(node h) { //h.n = αριθµός κόµβων στο υποδέντρο από h και κάτω if ((h == null) (h.n == 1)) return h; h = partr(h, h.n/2); //διαµέριση µε µεσαίο κλειδί στη ρίζα //κάνε το ίδιο για τα υποδέντρα h.l = balancer(h.l); h.r = balancer(h.r); //θέλουµε και κάποια µέθοδο fixn για διορθώση του πεδίου Ν fixn(h.l); fixn(h.r); fixn(h); //φτιάξε το Ν σε κάθε κόµβο return h; } Διατήρηση ΔΔΑ σε ισορροπηµένη µορφή Η περιοδική ανακατασκευή µπορεί να έχει µεγάλο κόστος Χρειαζόµαστε µεθόδους τοπικής ανακατασκευής Δοµές Δεδοµένων 15-4

5 Εισαγωγή Αλγοριθµικές προσεγγίσεις αποφυγής χειρότερης περίπτωσης Τυχαιοποίηση (Randomization): στατιστική αποφυγή της χειρότερης περίπτωσης Εισάγουµε κάποια τυχαία απόφαση στον αλγόριθµο Παράδειγµα: τυχαιοποιηµένα ΔΔΑ Απόσβεση (Amortization): εκτέλεση επιπλέον εργασίας ορισµένες φορές Αρχικά φαίνεται ότι µπορεί να κάνουµε extra δουλειά Το κόστος αποσβένεται µετά από πολλές λειτουργίες Παράδειγµα: στρεβλά ΔΔΑ Βελτιστοποίηση (Optimization): εγγυήσεις επίδοσης σε κάθε λειτουργία Χρήση πρόσθετων δοµικών πληροφοριών µέσα στα ΔΔΑ Παράδειγµα: δέντρα 2-3-4, δέντρα κόκκινου-µαύρου Δοµές Δεδοµένων 15-5

6 Τυχαιοποιηµένα ΔΔΑ Δοµές Δεδοµένων 15-6

7 Τυχαιοποιηµένα ΔΔΑ Απλή παραλλαγή των ΔΔΑ Ίδια δοµή µε τα ΔΔΑ, αλλά διαφορετική υλοποίηση των µεθόδων Έστω ότι έχουµε φτιάξει ένα ΔΔΑ µε N κόµβους Έστω ότι τα στοιχεία έρχονται τυχαία µε οµοιόµορφη κατανοµή των κλειδιών τους Αν έρθει για εισαγωγή ένα νέο στοιχείο, µε πιθανότητα 1/(Ν+1) η «σωστή» θέση είναι η ρίζα Υλοποίηση εισαγωγής: το στοιχείο εισάγεται στη ρίζα µε πιθανότητα 1/(N+1) Αυτή είναι η πιθανότητα να είναι η ρίζα ενός τυχαίου ΔΔΑ Με πιθ/τα Ν/Ν+1 αναδροµική εισαγωγή σε υποδέντρο µε τον ίδιο τρόπο Μπορεί έτσι να καταλήξει σε οποιοδήποτε επίπεδο του δέντρου Δοµές Δεδοµένων 15-7

8 Τυχαιοποιηµένα ΔΔΑ private Node insertr(node h, ITEM x) { if (h == null) return new Node(x); if (Math.random()*(h.N+1) < 1.0) return insertt(h, x); if (less(x.key(), h.item.key())) h.l = insertr(h.l, x); else h.r = insertr(h.r, x); h.n++; return h; } void insert(item x) { head = insertr(head, x); } Παρόµοιες ιδέες εφαρµόζονται για την υλοποίηση των υπόλοιπων µεθόδων Π.χ. για αφαίρεση, ένωση, κτλ Δοµές Δεδοµένων 15-8

9 Τυχαιοποιηµένα ΔΔΑ Απόδοση τυχαιοποιηµένων ΔΔΑ Είναι ουσιαστικά ισοδύναµα µε ΔΔΑ όπου N κλειδιά εισάγονται τυχαία Παρά το ότι τα κλειδιά δεν εισάγονται τυχαία Χειρότερη περίπτωση: όπως και στα ΔΔΑ, το δέντρο µπορεί να εκφυλιστεί σε µια αλυσίδα (συµβαίνει σπάνια όµως) Μαθηµατική ανάλυση µέσης περίπτωσης: Κατασκευή δέντρου Ν κόµβων: περίπου 2NlnN συγκρίσεις κατά µέσο όρο Αναζήτηση: περίπου 2lnN συγκρίσεις κατά µέσο όρο Δοµές Δεδοµένων 15-9

10 Τυχαιοποιηµένα ΔΔΑ Ιδιότητες τυχαιοποιηµένων ΔΔΑ Το ΔΔΑ που προκύπτει εξαρτάται από τους τυχαίους αριθµούς Αµελητέα πιθανότητα το δέντρο να είναι µη ισορροπηµένο Παράδειγµα: ΔΔΑ που προκύπτει από κλειδιά σε αύξουσα σειρά Στα κανονικά ΔΔΑ κλειδιά σε αύξουσα σειρά θα δηµιουργούσαν αλυσίδα Δοµές Δεδοµένων 15-10

11 Τυχαιοποιηµένα ΔΔΑ Μειονεκτήµατα τυχαιοποιηµένων ΔΔΑ Οι καλές γεννήτριες τυχαίων αριθµών είναι αργές Εναλλακτικά: χρήση πιο γρήγορων αλλά όχι τόσο τυχαίων γεννητριών Απαιτείται πεδίο πλήθους κόµβων (h.ν) σε κάθε κόµβο Μπορεί όµως να το θέλουµε ούτως ή άλλως και για άλλους λόγους (άλλες µεθόδους) Δοµές Δεδοµένων 15-11

12 Τυχαιοποιηµένα ΔΔΑ Αφαίρεση: παρόµοια µε τα απλά ΔΔΑ Όταν ενώνουµε τα υποδέντρα που προκύπτουν µετά την αφαίρεση ενός κόµβου, παίρνουµε µια τυχαία απόφαση για το αν κρεµάµε το δεξί κάτω από το αριστερό ή το αντίθετο private Node joinlr(node a, Node b) { //κλειδιά στο a κλειδιά στο b int N = a.n + b.n; if (a == null) return b; if (b == null) return a; if (Math.random()*N < 1.0*a.N) { a.r = joinlr(a.r, b); return a; } //βάζουµε το b κάτω από το a else { b.l = joinlr(a, b.l); return b; } } // αλλιώς a κάτω από b Δοµές Δεδοµένων 15-12

13 Τυχαιοποιηµένα ΔΔΑ Υλοποίηση ένωσης: παρόµοια µε τα απλά ΔΔΑ Έστω 2 ΔΔΑ Α και Β Στα απλά ΔΔΑ επιλέγαµε τη ρίζα του Α ως ρίζα του τελικού δέντρου Στα τυχαιοποιηµένα ΔΔΑ: τυχαία απόφαση για το ποια ρίζα θα µείνει στην κορυφή ανάλογα µε το πλήθος κόµβων του κάθε δέντρου Δοµές Δεδοµένων 15-13

14 Στρεβλά ΔΔΑ Δοµές Δεδοµένων 15-14

15 Στρεβλά ΔΔΑ Παραλλαγή των ΔΔΑ µε εισαγωγή στη ρίζα Ιδέα: Έστω ότι λόγω κάποιας εισαγωγής κατεβαίνουµε πολύ χαµηλά Αφού κατεβαίνουµε τόσο χαµηλά, ας φτιάξουµε µερικούς κόµβους λίγο καλύτερα! Δοµές Δεδοµένων 15-15

16 Στρεβλά ΔΔΑ Παραλλαγή των ΔΔΑ µε εισαγωγή στη ρίζα Εισαγωγή στη ρίζα: διαδοχικές περιστροφές από κάτω προς τα πάνω Στα στρεβλά ΔΔΑ, λαµβάνουµε υπόψη δύο διαδοχικές περιστροφές Αν είναι προς αντίθετες κατευθύνσεις, καµία αλλαγή Αν είναι προς την ίδια κατεύθυνση, διαφοροποιούµαστε Κάνουµε πρώτα την περιστροφή στη ρίζα και µετά στο παιδί Περιστροφές bottom-up Το Ε πάει στη ρίζα µε περιστροφές από το εγγόνι προς τη ρίζα Περιστροφές top-down Το Ε πάει στη ρίζα µε περιστροφές από τη ρίζα προς το εγγόνι Δοµές Δεδοµένων 15-16

17 Zig-zig και zig-zag Πατέρας και παππούς του A µε ίδια κατεύθυνση Zig-zig A D F G P Πατέρας και παππούς του H µε αντίθετες κατευθύνσεις A G J K P Zig-zag H Δοµές Δεδοµένων 15-17

18 Στρεβλά ΔΔΑ Zig-zag pattern: περιστροφές από κάτω προς τα πάνω όπως ξέρουµε 15 X W Y Z X Y Z W Δοµές Δεδοµένων 15-18

19 Στρεβλά ΔΔΑ Zig-zig pattern: περιστροφές από πάνω προς τα κάτω W Z X Y Y Z W X Δοµές Δεδοµένων 15-19

20 Στρεβλά ΔΔΑ Υλοποίηση στρεβλής εισαγωγής Διαφοροποιείται µόνο σε ζεύγη όµοιων περιστροφών Εξετάζουµε πάντα δύο επίπεδα (ελέγχουµε τα 4 πιθανά σενάρια, L-L, L-R, R-R, R-L) private Node splay(node h, ITEM x) { if (h == null) return new Node(x); //τέλος αναδροµής if (less(x.key(), h.item.key())) { if (h.l == null) { h.l = new Node(x); return rotr(h); } if (less(x.key(), h.l.item.key())) { h.l.l = splay(h.l.l, x); h = rotr(h);}//περιστρ. ρίζας else { h.l.r = splay(h.l.r, x); h.l = rotl(h.l);} return rotr(h); } //2 η περιστροφή είναι πάντα στη ρίζα else { Δοµές Δεδοµένων 15-20

21 Στρεβλά ΔΔΑ Υλοποίηση στρεβλής εισαγωγής (συνέχεια)... else { if (h.r == null) { h.r = new Node(x); return rotl(h); } if (less(h.r.item.key(), x.key())) { else { h.r.r = splay(h.r.r, x); h = rotl(h); } h.r.l = splay(h.r.l, x); h.r = rotr(h.r);} return rotl(h); } } void insert(item x) { head = splay(head, x); } Δοµές Δεδοµένων 15-21

22 Στρεβλά ΔΔΑ Τι κερδίζουµε µε τη στρεβλή εισαγωγή; Σε κάθε εισαγωγή µικραίνει η διαδροµή εισαγωγής Η απόσταση από τη ρίζα για πολλούς κόµβους µειώνεται περίπου στο µισό Μπορεί βέβαια να αυξάνεται το µήκος άλλων διαδροµών Επωφελούνται τα υποδέντρα κάτω από τους κόµβους που περιστρέφουµε (υποδέντρα Υ και Ζ στις προηγούµενες εικόνες) Δοµές Δεδοµένων 15-22

23 Στρεβλά ΔΔΑ Απόδοση στρεβλών ΔΔΑ N εισαγωγές σε άδειο ΔΔΑ: O(NlοgN) N εισαγωγές / αναζητήσεις σε ΔΔΑ M κόµβων: O((N+M)lοg(N+M)) Έχουµε καλό συνολικό κόστος, όχι απαραίτητα καλό κόστος σε κάθε µεµονωµένη λειτουργία Μέσο κόστος όλων των λειτουργιών Κάποιες λειτουργίες µπορεί να είναι αργές Το κόστος τους αποσβένεται σε πολλές λειτουργίες Αυτή είναι η χειρότερη, όχι η µέση περίπτωση! Βελτίωση απόδοσης στρεβλών ΔΔΑ Μπορούµε να κάνουµε εξισορρόπηση και στις αναζητήσεις Ιδιαίτερα αποδοτική για ανοµοιόµορφες προσπελάσεις Τα κλειδιά που χρησιµοποιούνται συχνά πλησιάζουν τη ρίζα Δοµές Δεδοµένων 15-23

24 Καθοδικά δέντρα Παρά την καλή απόδοση των τυχαιοποιηµένων και των στρεβλών δέντρων υπάρχει πάντα µία πολύ µικρή πιθανότητα να µην πάρουµε ισοζυγισµένο δέντρο Μπορούµε να εγγυηθούµε ότι όλες οι λειτουργίες εισαγωγής και αναζήτησης θα γίνονται πάντα σε χρόνο O(logN)? Για να γίνει αυτό χρειαζόµαστε µεγαλύτερη ευελιξία στις δοµές που χρησιµοποιούµε Δοµές Δεδοµένων 15-24

25 Καθοδικά δέντρα Τα δέντρα έχουν τρία είδη κόµβων 2-κόµβοι: 1 κλειδί και 2 σύνδεσµοι (όπως στα ΔΔΑ) 3-κόµβοι: 2 κλειδιά και 3 σύνδεσµοι, π.χ. αν έχει κλειδιά τα 15, 30 Πρώτος σύνδεσµος σε υποδέντρο µε κλειδιά 15 Δεύτερος σύνδεσµος σε υποδέντρο µε κλειδιά στο [15, 30] Τρίτος κόµβος σε υποδέντρο µε κλειδιά 30 4-κόµβοι: 3 κλειδιά και 4 σύνδεσµοι (σε αναλογία µε τους 3-κόµβους) Ιδιότητα δέντρων 2-3-4: Όλοι οι null σύνδεσµοι ισαπέχουν από τη ρίζα Δηλαδή είναι πλήρως ισορροπηµένα δέντρα Δοµές Δεδοµένων 15-25

26 Καθοδικά δέντρα Η αναζήτηση είναι γενίκευση αυτής των ΔΔΑ Η εισαγωγή είναι λίγο πιο περίπλοκη Για 2-κόµβους και 3-κόµβους αρκεί αναζήτηση και µετά εισαγωγή όπως στα ΔΔΑ 2-κόµβοι µετατρέπονται σε 3-κόµβους και 3-κόµβοι µετατρέπονται σε 4-κόµβους Για 4-κόµβους δεν αρκεί (θέλουµε να διατηρήσουµε την ισορροπία) Τι κάνουµε όταν θέλουµε εισαγωγή σε 4-κόµβο; Δοµές Δεδοµένων 15-26

27 Καθοδικά δέντρα Ανοδική εισαγωγή Ξεκινάµε µε αναζήτηση Εντοπίζουµε τον κόµβο στο τελευταίο επίπεδο όπου τελείωσε η αναζήτηση Αν είναι 2-κόµβος ή 3-κόµβος εισάγουµε το κλειδί και τον µετατρέπουµε σε 3- ή 4-κόµβο αντίστοιχα Αν είναι 4-κόµβος τον σπάµε στα δύο Το µεσαίο κλειδί πηγαίνει στον πατέρα Το νέο κλειδί εισάγεται στο κατάλληλο παιδί Συνεχίζουµε αναδροµικά στον πατέρα Δοµές Δεδοµένων 15-27

28 Καθοδικά δέντρα Μπορεί όµως να είναι και ο γονέας 4-κόµβος, καθώς και ο γονέας του γονέα, κ.ο.κ. Η ανοδική εισαγωγή τότε θα είναι πολύ αργή (µπορεί να αλλάξει όλο το δέντρο) Καθοδική εισαγωγή Όποτε βρίσκουµε έναν 4-κόµβο τον σπάµε Αυτό γίνεται σε όλα τα επίπεδα κατεβαίνοντας Εξασφαλίζουµε ότι ένας 4-κόµβος δεν είναι παιδί 4-κόµβου Εισάγουµε το µεσαίο κλειδί στον πατέρα Αν η ρίζα γίνει 4-κόµβος τη διασπάµε άµεσα όταν τελειώσει η εισαγωγή Δεν περιµένουµε την επόµενη εισαγωγή Εισάγουµε το νέο κλειδί στο τελευταίο επίπεδο Δοµές Δεδοµένων 15-28

29 Καθοδικά δέντρα Απόδοση καθοδικών δέντρων Αναζήτηση: το πολύ lοgn+1 διασχίσεις κόµβων Όλοι οι κόµβοι-φύλλα ισαπέχουν από τη ρίζα Άρα τα προηγούµενα επίπεδα είναι γεµάτα Μόνο η διάσπαση της ρίζας αυξάνει το ύψος Όλοι οι κόµβοι είναι τουλάχιστον 2-κόµβοι Εισαγωγή: το πολύ lοgn+1 διαιρέσεις κόµβων Διαιρέσεις σε όλη τη διαδροµή Τα ανοδικά δέντρα θέλουν περισσότερες διαιρέσεις Είναι όµως πιο απλά στην υλοποίηση Δοµές Δεδοµένων 15-29

30 Καθοδικά δέντρα Υλοποίηση δέντρων ΔΕΝ είναι τόσο απλά τα πράγµατα! Θα µπορούσαµε να έχουµε 3 διαφορετικούς τύπους δεδοµένων για την αναπαράσταση των 2-κόµβων, 3-κόµβων και 4-κόµβων Η χρήση 3 ειδών κόµβων όµως έχει αρκετό κόστος Μπορεί η επιβάρυνση να υπερβαίνει την ωφέλεια Θα προτιµούσαµε έναν οµοιόµορφο τρόπο χειρισµού όλων των κόµβων Εναλλακτική υλοποίηση: δέντρα κόκκινου-µαύρου Δοµές Δεδοµένων 15-30

31 Δέντρα κόκκινου-µαύρου Δέντρα Κόκκινου-Μαύρου (ΔΚΜ) Αναπαράσταση δέντρων ως ΔΔΑ Με χρήση µόνο ενός extra πεδίου (1 bit) Οι 3- και 4-κόµβοι µετατρέπονται σε 2-κόµβους Οι µεταξύ τους σύνδεσµοι είναι κόκκινοι Οι υπόλοιποι σύνδεσµοι είναι µαύροι Παράσταση 4-κόµβων Τρεις 2-κόµβοι που συνδέονται µε κόκκινους συνδέσµους Μεσαίο κλειδί στον πάνω κόµβο Παράσταση 3-κόµβων Δύο 2-κόµβοι που συνδέονται µε κόκκινους συνδέσµους Ο κόκκινος σύνδεσµος µπορεί να είναι δεξιά ή αριστερά Ένα bit ανά κόµβο για το χρώµα του συνδέσµου Ορίζει το χρώµα του συνδέσµου µε τον πατέρα του Δοµές Δεδοµένων 15-31

32 Δέντρα κόκκινου-µαύρου Αναζήτηση: ακριβώς ίδια µε αυτή των ΔΔΑ Εισαγωγή: βασίζεται σε αυτή των δέντρων Τα δέντρα κόκκινου-µαύρου συνδυάζουν την απλή µέθοδο αναζήτησης των ΔΔΑ µε την απλή µέθοδο εισαγωγής-εξισορρόπησης των δέντρων Χρειάζονται όµως ένα επιπλέον πεδίο για το χρώµα (πολύ µικρή επιβάρυνση) Δοµές Δεδοµένων 15-32

33 Δέντρα κόκκινου-µαύρου Εισαγωγή σε ΔΚΜ Χρησιµοποιούµε τον αλγόριθµο καθοδικής εισαγωγής για τα δέντρα Μετατρέπουµε τα είδη κόµβων σε χρώµατα συνδέσµων Περιπτώσεις διάσπασης 4-κόµβων Ξέρουµε ότι ο πατέρας του υπό διάσπαση κόµβου δεν είναι 4-κόµβος (1) Ο πατέρας είναι 2-κόµβος Απλή αλλαγή χρωµάτων για να γίνει 3-κόµβος Γίνεται κόκκινος ο σύνδεσµος από τον 2-κόµβο προς το παιδί Καµία δοµική αλλαγή ή µετακίνηση στους συνδέσµους (2) Ο πατέρας είναι 3-κόµβος µε «σωστό» προσανατολισµό Ο κόκκινος σύνδεσµος του 3-κόµβου είναι από την άλλη µεριά Απλή αλλαγή χρωµάτων για να γίνει 4-κόµβος (όπως και πριν) Δοµές Δεδοµένων 15-33

34 Δέντρα κόκκινου-µαύρου Περιπτώσεις διάσπασης 4-κόµβων (3) Ο πατέρας είναι 3-κόµβος µε «λάθος» προσανατολισµό Η διαίρεση µε απλή αλλαγή χρωµάτων αφήνει 2 κόκκινους συνδέσµους στη σειρά Το δέντρο δεν αντιστοιχεί πια σε δέντρο Περιστροφή για αποκατάσταση της µορφής (υπάρχουν 4 περιπτώσεις ανά 2 συµµετρικές) (3α) Ίδια κατεύθυνση κόκκινων συνδέσµων: απλή περιστροφή (3β) Διαφορετική κατεύθυνση συνδέσµων: διπλή περιστροφή (αριστερή-δεξιά ή δεξιά-αριστερή) Δοµές Δεδοµένων 15-34

35 Δέντρα κόκκινου-µαύρου Υλοποίηση εισαγωγής σε ΔΚΜ Αναδροµική υλοποίηση Στην κάθοδο αλλάζουµε τα χρώµατα (πριν την αναδροµική κλήση) Διάσπαση των 4-κόµβων Στην άνοδο εκτελούµε τις περιστροφές Το πεδίο sw δείχνει αν ο τρέχων κόµβος είναι δεξί παιδί Το πεδίο h.cbit (color bit) δείχνει το χρώµα του συνδέσµου του h προς τον πατέρα του Ο κόµβος στη ρίζα θεωρείται κατά σύµβαση ότι έχει µαύρο και αριστερό σύνδεσµο Οι νέοι κόµβοι έχουν κόκκινο σύνδεσµο private static final boolean R = true; private static final boolean B = false; private boolean red(node x) { if (x == null) return false; return x.cbit; } void insert(item x) { head = insertr(head, x, false); head.cbit = B; } Δοµές Δεδοµένων 15-35

36 Δέντρα κόκκινου-µαύρου Υλοποίηση εισαγωγής σε ΔΚΜ Περίπτωση εισαγωγής στο αριστερό υποδένδρο Διαδοχικοί ανάποδοι κόκκινοι σύνδεσµοι: περιστροφή Διαδοχικοί ίδιοι κόκκινοι σύνδεσµοι: (ξανα)κάνουµε περιστροφή Καθορίζεται από το πεδίο sw private Node insertr(node h, ITEM x, boolean sw) { if (h == null) { return new Node(x, R); } //όταν η αναδροµή φτάνει σε null δηµιουργείται κόκκινος σύνδεσµος if (red(h.l) && red(h.r)) { //βρήκαµε 4-κόµβο h.cbit = R; h.l.cbit = B; h.r.cbit = B;}//διάσπαση if (less(x.key(), h.item.key())) { h.l = insertr(h.l, x, false); if (red(h) && red(h.l) && sw) h = rotr(h); if (red(h.l) && red(h.l.l)) { //2 διαδοχικοί κόκκινοι σύνδεσµοι κάτω από το h è δεξιά περιστροφή h = rotr(h); h.cbit = B; h.r.cbit = R; } } Δοµές Δεδοµένων 15-36

37 Δέντρα κόκκινου-µαύρου Υλοποίηση εισαγωγής σε ΔΚΜ Περίπτωση εισαγωγής στο δεξί υποδέντρο Συµµετρική µε την προηγούµενη Η πρώτη περιστροφή ανάγει τη µία περίπτωση στην άλλη else { h.r = insertr(h.r, x, true); if (red(h) && red(h.r) &&!sw) h = rotl(h); if (red(h.r) && red(h.r.r)) { return h; } h = rotl(h); h.cbit = B; h.l.cbit = R; } } Δοµές Δεδοµένων 15-37

38 Δέντρα κόκκινου-µαύρου Απόδοση αναζήτησης σε ΔΚΜ Πόσο περισσότερο µπορεί να κοστίσει η εισαγωγή/αναζήτηση σε σχέση µε τα δέντρα 2-3-4? Κάθε 3-κόµβος ή 4-κόµβος του αντιστοιχεί τώρα σε 2 ή 3 κόµβους που βρίσκονται σε 2 διαφορετικά επίπεδα Εποµένως: το ύψος ενός δέντρου κόκκινου-µαύρου µπορεί να γίνει µέχρι και διπλάσιο του ισοδύναµου δέντρου Χειρότερη περίπτωση: το πολύ 2lοgN+2 συγκρίσεις Μέση περίπτωση: 1,002lοgN συγκρίσεις Υποθέτουµε τυχαία κλειδιά κατά την κατασκευή Δοµές Δεδοµένων 15-38

39 Λίστες παράλειψης (skip lists) Ταξινοµηµένη λίστα Χρήση πρόσθετων συνδέσµων για να παραλείπουµε µεγάλα τµήµατα της λίστας κατά την αναζήτηση Κάθε κόµβος µπορεί να έχει µεταβλητό πλήθος συνδέσµων Κάθε σύνδεσµος µπορεί να παραλείπει µεταβλητό πλήθος κόµβων Δοµές Δεδοµένων 15-39

40 Λίστες παράλειψης (skip lists) Αναζήτηση: ξεκινάµε από το πιο πάνω επίπεδο µέχρι να βρούµε σύνδεσµο που είτε δείχνει σε null, είτε δείχνει σε κόµβο µε µεγαλύτερο κλειδί από αυτό που ψάχνουµε Πηγαίνουµε στο επόµενο επίπεδο συνδέσµων και επαναλαµβάνουµε τη διαδικασία Διατήρηση πίνακα συνδέσµων σε κάθε κόµβο (µπορούµε και τυχαιοποιηµένα να αποφασίσουµε τον αριθµό των συνδέσµων σε κάθε κόµβο χωριστά) Δοµές Δεδοµένων 15-40

41 Λίστες παράλειψης (skip lists) Οι λίστες παράλειψης είναι µία εναλλακτική αναπαράσταση των ισορροποηµένων δέντρων Οι αλγόριθµοι για δέντρα µπορούν να υλοποιηθούν µε λίστες παράλειψης αντί για δέντρα κόκκινου-µαύρου Αντιστοίχιση: για κάθε κόµβο, πλήθος συνδέσµων = ύψος του κόµβου στο δέντρο Σύνδεση κόµβων οριζόντια (ανά επίπεδο) Λίγο πιο πολύπλοκος κώδικας Δοµές Δεδοµένων 15-41

42 Χαρακτηριστικά Επιδόσεων Ισορροπηµένων Δέντρων Περίληψη: Τυχαιοποιηµένα ΔΔΑ: πιο εύκολη υλοποίηση, πρέπει να έχουµε καλή γεννήτρια τυχαίων αριθµών Στρεβλά ΔΔΑ: άµεση επέκταση του αλγορίθµου εισαγωγής στη ρίζα, ικανοποιητική απόδοση σε βάθος χρόνου Δέντρα κόκκινου-µαύρου: καλύτερες εγγυήσεις για γρήγορη αναζήτηση, χειρότερη περίπτωση για κάθε µεµονωµένη αναζήτηση Ο(logN) Λίστες παράλειψης: κατάλληλες για πλήρες φάσµα λειτουργιών πίνακα συµβόλων (αφαίρεση, ένωση, επιλογή k-οστού), πιο αργές οι εισαγωγές και αναζητήσεις Δοµές Δεδοµένων 15-42

43 Χαρακτηριστικά Επιδόσεων Ισορροπηµένων Δέντρων Πειραµατικά δεδοµένα Κατασκευή δέντρου Ν ΔΔΑ Τυχ. ΔΔΑ Splay ΔΔΑ R-B Skip Lists Δοµές Δεδοµένων 15-43

44 Χαρακτηριστικά Επιδόσεων Ισορροπηµένων Δέντρων Πειραµατικά δεδοµένα Αναζητήσεις Ν ΔΔΑ Τυχ. ΔΔΑ Splay ΔΔΑ R-B Skip Lists Δοµές Δεδοµένων 15-44

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

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

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

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

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 17η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Εισαγωγή Τυχαιοποιηµένα ΔΔΑ (Randomized Binary Search trees) Στρεβλά ΔΔΑ (Splay trees) Καθοδικά δέντρα 2-3-4 (Top-Down 2-3-4 trees)

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Δέντρα Δυαδικής Αναζήτησης Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Δέντρα Δυαδικής Αναζήτησης Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δέντρα Δυαδικής Αναζήτησης Κεφάλαιο 12 (12.6 12.9) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Δυαδικής Αναζήτησης (ΔΔΑ) Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ακολουθιακή πρόσβαση Β-δέντρα Υλοποίηση πίνακα συµβόλων µε Β-δέντρα Αναζήτηση Εισαγωγή Δοµές Δεδοµένων

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

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

Δοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης Δοµές Δεδοµένων 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός Ε. Μαρκάκης Περίληψη Υλοποιήσεις άλλων λειτουργιών σε ΔΔΑ: Επιλογή k-οστού µικρότερου Διαµέριση Αφαίρεση στοιχείου Ένωση 2 δέντρων

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες Συµβόλων Κεφάλαιο 12 (12.1-12.4) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Πίνακες συµβόλων Διεπαφή πίνακα συµβόλων Αναζήτηση µε αριθµοδείκτη Ακολουθιακή αναζήτηση Δυαδική αναζήτηση

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

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

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

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

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

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης Δοµές Δεδοµένων 16η Διάλεξη Κατακερµατισµός Ε. Μαρκάκης Περίληψη Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός Δυναµικός κατακερµατισµός Προοπτική Δοµές Δεδοµένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λίστες παράλειψης (skip lists)

Λίστες παράλειψης (skip lists) Χρησιμοποιεί πρόσθετους συνδέσμους στους κόμβους μιας συνδεδεμένης λίστας επιτάχυνση της αναζήτησης με παράλειψη μεγάλων τμημάτων της λίστας Μια λίστα παράλειψης είναι μια διατεταγμένη συνδεδεμένη λίστα

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

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

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

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

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

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

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

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

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

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

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

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

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

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

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι

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

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης Δοµές Δεδοµένων 10η Διάλεξη Ταξινόµηση E. Μαρκάκης Περίληψη Ταξινόµηση µε αριθµοδείκτη κλειδιού Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 13η Διάλεξη Πίνακες Συµβόλων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 13η Διάλεξη Πίνακες Συµβόλων. Ε. Μαρκάκης Δοµές Δεδοµένων 13η Διάλεξη Πίνακες Συµβόλων Ε. Μαρκάκης Ο αλγόριθµος heapsort Παράδειγµα ταξινόµησης µε σωρό Δηµιουργία σωρού (σε µορφή δέντρου) Τα στοιχεία ταξινοµούνται µερικώς Ταξινόµηση µε βάση το

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

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

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

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

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης Δοµές Δεδοµένων 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων Ε. Μαρκάκης Περίληψη Διπλά συνδεδεµένες λίστες Αναπαράσταση γράφων µε λίστες Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση

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

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 :

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 : AVL δέντρα AVL Δέντρα L R G.M. AdelsonVelkii και E.M. Landis 192 Μη AVL Δέντρα Εισαγωγή κόμβου, : : Αριστερή στροφή 1 8, 1 : 8 1 7 : 7 8 1 Δεξιά στροφή 8 7 Αριστερή στροφή 1 8 7 1 Περιπτώσεις LL : ο νέος

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

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

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

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

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

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

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

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς

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

Δοµές Δεδοµένων. 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας. Ε. Μαρκάκης

Δοµές Δεδοµένων. 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας. Ε. Μαρκάκης Δοµές Δεδοµένων 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας Ε. Μαρκάκης Περίληψη Διάσχιση δέντρων Ουρές προτεραιότητας Στοιχειώδεις υλοποιήσεις Δοµή δεδοµένων σωρού Αλγόριθµοι σε σωρούς Ο αλγόριθµος

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Quicksort Κεφάλαιο 7 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Quicksort Ο βασικός αλγόριθµος Χαρακτηριστικά επιδόσεων Μικροί υποπίνακες Μη αναδροµική υλοποίηση Δοµές Δεδοµένων

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Κατακερµατισµός Κεφάλαιο 14. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Κατακερµατισµός Κεφάλαιο 14 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Εισαγωγή στον κατακερµατισµό Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός

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

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

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

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

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση 1 Ταξινόµηση! Δεδοµένα: Δίνεται ένας πίνακας data από N ακεραίους! Ζητούµενο: Να ταξινοµηθούν τα περιεχόµενα σε αύξουσα αριθµητική σειρά:!i : 0 data[i]

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Κεφάλαιο 1. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Κεφάλαιο 1. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Κεφάλαιο 1 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Συνδετικότητα δικτύου Αφαιρέσεις (abstractions) Αφηρηµένη ένωση-εύρεση 1. Γρήγορη εύρεση 2. Γρήγορη

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

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

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

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

AVL-trees C++ implementation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Στοιχειώδεις Δοµές Δεδοµένων Λίστες Κεφάλαιο 3 (3.3, 3.4, 3.7) Ε. Μαρκάκης Επικ. Καθηγητής Ενηµέρωση 5ο τµήµα Εργαστηρίων Τετάρτη 11-1 Δοµές Δεδοµένων 04-2 Περίληψη Συνδεδεµένες λίστες

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

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

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

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

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K. Δοµές Δεδοµένων 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης Βασίζεται στις διαφάνειες των R. Sedgewick K. Wayne Περίληψη Συνδετικότητα δικτύου Αφαιρέσεις Συνδεδεµένα συστατικά Αφηρηµένη

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

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΟΜΕΣ Ε ΟΜΕΝΩΝ T. Σελλής ΑΝΟΙΞΗ 2003 ΑΣΚΗΣΗ #3 Ηµερ. Παράδοσης: 09/05/03

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

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

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

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

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

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

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

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

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