Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη

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

Download "Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη"

Transcript

1 Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman Καθηγήτρια Μαρία Σατρατζέμη

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

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

4 Σκοποί ενότητας Να γνωρίζουν τον αναδρομικό ορισμό του ΔΔΑ Να υλοποιούν τις αναδρομικές διαδικασίες αναζήτησης, εισαγωγής, διαγραφής, διάσχισης (LNR, NLR. LRN) σε ΔΔΑ Να γνωρίζουν για τους κώδικες μεταβλητού μήκους Τα άμεσα αποκωδικοποιήσιμα συστήματα Το δένδρο Huffman και τον αντίστοιχο αλγόριθμο για την κωδικοποίηση και αποκωδικοποίηση 4

5 Περιεχόμενα ενότητας[1] ΔΔΑ ως αναδρομική δομή δεδομένων Αναδρομικός ορισμός δυαδικού δέντρου Παράδειγμα αναδρομικής διάσχισης Αναδρομική διάσχιση δέντρου Διαδικασία ενδοδιατεταγμένης διάσχισης δέντρου Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου Διαδικασία αναδρομικής αναζήτησης σε ΔΔΑ Αναδρομική διαδικασία εισαγωγής στοιχείου Αναδρομική διαδικασία διαγραφής στοιχείου 5

6 Περιεχόμενα ενότητας[2] Κώδικας μεταβλητού μήκους Κώδικας μεταβλητού μήκους: αναμενόμενο μήκος Άμεσα αποκωδικοποιήσιμα συστήματα Αλγόριθμος Huffman Εφαρμογή του αλγορίθμου Huffman Αλγόριθμος αποκωδικοποίησης Huffman Εφαρμογή αλγόριθμου αποκωδικοποίησης Huffman 6

7 Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων 7

8 ΔΔΑ ως αναδρομική δομή δεδομένων Ένα δυαδικό δέντρο μπορεί πολύ φυσικά να οριστεί ως μια αναδρομική δομή δεδομένων (recursive data structure). 8

9 ΔΔΑ ως αναδρομική δομή δεδομένων Στη ρίζα του δέντρου βρίσκεται ο αριθμός 48 και υπάρχουν δείκτες προς τους κόμβους με αριθμούς 45 και 70, καθένας από τους οποίους είναι ρίζα ενός δυαδικού υποδέντρου, όπως δείχνουν και τα ακόλουθα σχήματα: Ας πάρουμε τώρα το αριστερό υποδέντρο, που έχει ρίζα τον κόμβο με τον αριθμό 45 και ένα αριστερό παιδί, αλλά δεν έχει δεξί. Μπορούμε να θεωρήσουμε ότι αυτός ο κόμβος έχει δείκτες προς δυο δυαδικά υποδέντρα, ένα δεξί υποδέντρο και ένα αριστερό υποδέντρο (κενό), με την προϋπόθεση ότι επιτρέπονται τα κενά δέντρα: 9

10 Αναδρομικός ορισμός δυαδικού Επειδή το αριστερό υποδέντρο αποτελείται μόνο από έναν κόμβο, τον κόμβο με τον αριθμό 2, θα έχει κενό δεξί υποδέντρο και κενό αριστερό υποδέντρο. Έτσι, λοιπόν, ένα δυαδικό δέντρο μπορεί να οριστεί αναδρομικά ως εξής: Ένα δυαδικό δέντρο είτε α. είναι κενό είτε δέντρου -1- β. αποτελείται από έναν κόμβο, που ονομάζεται ρίζα, ο οποίος έχει δείκτες προς δύο δυαδικά υποδέντρα, που ονομάζονται αριστερό υποδέντρο και δεξί υποδέντρο. 10

11 Αναδρομικός ορισμός δυαδικού δέντρου -2- Εξαιτίας της αναδρομικής φύσης των δυαδικών δέντρων, πολλές από τις βασικές λειτουργίες τους μπορούν να εκτελεστούν πολύ απλά χρησιμοποιώντας αναδρομικούς αλγόριθμους. Έστω, για παράδειγμα, η λειτουργία της διάσχισης, κατά την οποία μετακινούμαστε μέσα στο δυαδικό δέντρο και επισκεπτόμαστε κάθε κόμβο ακριβώς μια φορά. Υποθέτουμε ότι η σειρά με την οποία επισκεπτόμαστε κάθε κόμβο δεν έχει σημασία, αλλά είναι σημαντικό να επισκεφτούμε όλους τους κόμβους και να επεξεργαστούμε τις πληροφορίες που περιέχονται σ' αυτούς ακριβώς μια φορά. Ένα απλό αναδρομικό σχήμα είναι να διασχίσουμε το δυαδικό δέντρο ως εξής: Επίσκεψη της ρίζας και επεξεργασία των περιεχομένων της. Διάσχιση του αριστερού υποδέντρου. Διάσχιση του δεξιού υποδέντρου. 11

12 Παράδειγμα αναδρομικής διάσχισης -1- εμφανίζοντας τα περιεχόμενα κάθε κόμβου που επισκεπτόμαστε, ξεκινάμε από τη ρίζα και εμφανίζουμε τον αριθμό 48, όπως δείχνει και το διπλανό σχήμα: Εν συνεχεία πρέπει να διασχίσουμε πρώτα το αριστερό υποδέντρο και έπειτα το δεξί. Όταν ολοκληρωθεί η διάσχιση και των δύο υποδέντρων θα έχουμε διασχίσει όλο το δυαδικό δέντρο. 12

13 Παράδειγμα αναδρομικής διάσχισης -2- Τώρα το πρόβλημα έχει περιοριστεί στο να διασχίσουμε δύο μικρότερα δυαδικά δέντρα. Παίρνουμε πρώτα το αριστερό υποδέντρο (Σχήμα Β) και επισκεπτόμαστε τη ρίζα του, οπότε εμφανίζεται ο αριθμός 45. Στη συνέχεια θα διασχίσουμε πρώτα το αριστερό υποδέντρο του και έπειτα το δεξί. Για να διασχίσουμε το αριστερό υποδέντρο, επισκεπτόμαστε τη ρίζα του και εμφανίζουμε τον αριθμό 2. Τώρα πρέπει να διασχίσουμε πρώτα το αριστερό και στη συνέχεια το δεξί υποδέντρο. Όπως φαίνεται και από το σχήμα, και τα δύο υποδέντρα είναι κενά οπότε δεν χρειάζεται να κάνουμε τίποτα, δηλαδή η διάσχιση του δέντρου του Σχήματος Γ έχει ολοκληρωθεί. 13

14 Παράδειγμα αναδρομικής διάσχισης -3- Τώρα πρέπει να διασχίσουμε το δεξί υποδέντρο του δέντρου του Σχήματος Β. Το υποδέντρο αυτό είναι κενό, οπότε και πάλι δεν κάνουμε τίποτα. Επομένως, η διάσχιση του αριστερού υποδέντρου της ρίζας του αρχικού δέντρου έχει ολοκληρωθεί και μένει να διασχίσουμε το δεξί υποδέντρο. Ξεκινάμε πάλι από τη ρίζα αυτού του υποδέντρου και εμφανίζουμε τον αριθμό 70, που είναι αποθηκευμένος εκεί, όπως φαίνεται και στο Σχήμα Δ. Στη συνέχεια θα διασχίσουμε το αριστερό και το δεξί υποδέντρο. 14

15 Παράδειγμα αναδρομικής διάσχισης -4- Πρώτα θα διασχίσουμε το αριστερό υποδέντρο του παραπάνω σχήματος, οπότε εμφανίζουμε τον αριθμό 66, που βρίσκεται στη ρίζα του. Ακολουθεί η διάσχιση του αριστερού υποδέντρου και του δεξιού υποδέντρου. Όπως φαίνεται και από το Σχήμα Ε, τα υποδέντρα αυτά είναι κενά, πράγμα που σημαίνει ότι δεν έχουμε να κάνουμε τίποτα και η διάσχιση του δέντρου του Σχήματος Ε έχει ολοκληρωθεί. Τώρα μας μένει να διασχίσουμε το δεξί υποδέντρο του Σχήματος Δ. Εμφανίζουμε τον αριθμό 83 της ρίζας του και στη συνέχεια πρέπει να διασχίσουμε το αριστερό και το δεξί υποδέντρο, όπως φαίνονται και στο Σχήμα Ζ. Επειδή και τα δύο αυτά δέντρα είναι κενά, δεν κάνουμε τίποτα. Η διάσχιση του δέντρου του Σχήματος Ζ έχει ολοκληρωθεί. 15

16 Αναδρομική διάσχιση δέντρου Όπως φαίνεται, από το προηγούμενο παράδειγμα, η διάσχιση ενός δυαδικού δέντρου αναδρομικά απαιτεί τρία βασικά βήματα, τα οποία συμβολίζουμε ως N, L και R: Ν (Node): Επίσκεψη ενός κόμβου. L (Left): Διάσχιση του αριστερού υποδέντρου ενός κόμβου. R (Right): Διάσχιση του δεξιού υποδέντρου ενός κόμβου. Παρόλο που στο παράδειγμά μας εκτελέσαμε τα βήματα με αυτή τη σειρά, στην πραγματικότητα έχουμε έξι διατάξεις όσον αφορά τη σειρά εκτέλεσης των βημάτων: LNR, NLR, LRN,, NRL, RNL, RLN 16

17 Αναδρομική διάσχιση δέντρου: Αν, για παράδειγμα εφαρμοστεί η διάταξη LNR, τότε ο αντίστοιχος αλγόριθμος διάταξης είναι: Αν το δυαδικό δέντρο είναι κενό τότε Μην κάνεις τίποτα Αλλιώς L:Διάσχιση του αριστερού υποδέντρου N:Επίσκεψη της ρίζας R:Διάσχιση του δεξιού υποδέντρου Τέλος_αν διάταξη LNR Αν εφαρμόσουμε τον παραπάνω αλγόριθμο στο δυαδικό δέντρο που χρησιμοποιήσαμε και προηγουμένως, η διάσχισή του εμφανίζει τους κόμβους με τη σειρά 2, 45, 38, 76, 70,

18 Αναδρομική διάσχιση δέντρου: διατάξεις Από τις προαναφερθείσες διατάξεις οι πιο σημαντικές είναι οι τρεις πρώτες, όπου πρώτα διασχίζεται το αριστερό υποδέντρο και μετά το δεξί, και έχουν τις εξής συγκεκριμένες ονομασίες: LNR: ενδοδιατεταγμένη (inorder) NLR: προδιατεταγμένη (preorder) LRN: μεταδιατεταγμένη (postorder) 18

19 Δέντρα παράστασης -1- Μια αριθμητική έκφραση μπορεί να παρασταθεί με ένα δυαδικό δέντρο, στο οποίο τα φύλλα περιέχουν τελεστέους και οι εσωτερικοί κόμβοι τελεστές. Ένα τέτοιο δέντρο ονομάζεται δέντρο παράστασης (expression tree). 19

20 Δέντρα παράστασης -2- Παράδειγμα: η αριθμητική παράσταση Α * Β + Γ - Δ μπορεί να παρασταθεί με το διπλανό δυαδικό δέντρο: όπου κάθε τελεστέος παριστάνεται σαν ένα παιδί ενός κόμβου πατέρα, που παριστάνει τον αντίστοιχο τελεστή. Με μια ενδοδιατεταγμένη διάσχιση του παραπάνω δέντρου παράστασης προκύπτει η ενδοθεματική έκφραση: Α * Β + Γ - Δ Μια προδιατεταγμένη διάσχιση του ίδιου δέντρου οδηγεί στην προθεματική έκφραση: + * Α Β - Γ Δ Τέλος, μια μεταδιατεταγμένη διάσχιση του δέντρου μας δίνει την μεταθεματική έκφραση: Α Β * Γ Δ

21 Διαδικασία ενδοδιατεταγμένης διάσχισης δέντρου -1- void RecBSTInorder(BinTreePointer Root) /*Δέχεται: Ένα δυαδικό δέντρο με το δείκτη Root να δείχνει στην ρίζα του. Λειτουργία: Εκτελεί ενδοδιατεταγμένη διάσχιση του δυαδικού δέντρου και επεξεργάζεται κάθε κόμβο ακριβώς μια φορά. Επιστρέφει: Εξαρτάται από το είδος της επεξεργασίας.*/ 21

22 { } if (Root!= NULL) { } Διαδικασία ενδοδιατεταγμένης printf("l"); RecBSTInorder(Root->LChild); printf("/%d ",Root->Data,"/"); printf("r"); RecBSTInorder(Root->RChild); printf("u"); διάσχισης δέντρου -2- //εδώ προστίθενται εντολές ανάλογα με την επεξεργασία του κόμβου Για τα άλλα ήδη διατάξεων μπορούν να κατασκευαστούν διαδικασίες απλά αλλάζοντας τη σειρά των λειτουργιών L, N και R. 22

23 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου Για να δούμε στην πράξη πώς λειτουργεί η παραπάνω διαδικασία, έστω ότι έχουμε το παρακάτω δυαδικό δέντρο: Ο πίνακας που ακολουθεί δείχνει αναλυτικά την ενέργεια της διαδικασίας RecBSTInorderγια το παραπάνω δυαδικό δέντρο: 23

24 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου -1- Κ F D τίποτα Κλήση της RecBSTInorder με δείκτη στη ρίζα (F) του αριστερού υποδέντρου. Κλήση της RecBSTInorder με δείκτη στη ρίζα (D) του αριστερού υποδέντρου. Κλήση της RecBSTInorder με δείκτη (NULL) στη ρίζα του αριστερού υποδέντρου. Τίποτα, επιστροφή στον κόμβο πατέρα. D Εμφάνισε τα περιεχόμενα του κόμβου. D D τίποτα D Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του δεξιού υποδέντρου. Τίποτα, επιστροφή στον κόμβο πατέρα. Επιστροφή στον κόμβο πατέρα. F Εμφάνισε τα περιεχόμενα του κόμβου. F 24

25 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου -2- F H Κλήση της RecBSTInorder με δείκτη στη ρίζα (H) του δεξιού υποδέντρου. Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του αριστερού υποδέντρου. τίποτα Τίποτα, επιστροφή στον κόμβο πατέρα. H Εμφάνισε τα περιεχόμενα του κόμβου. H H Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του δεξιού υποδέντρου. τίποτα Τίποτα, επιστροφή στον κόμβο πατέρα. H F Επιστροφή στον κόμβο πατέρα. Επιστροφή στον κόμβο πατέρα. K Εμφάνισε τα περιεχόμενα του κόμβου. K 25

26 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου -3- K P M Κλήση της RecBSTInorder με δείκτη στη ρίζα (P) του δεξιού υποδέντρου. Κλήση της RecBSTInorder με δείκτη στη ρίζα (M) του αριστερού υποδέντρου. Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του αριστερού υποδέντρου. τίποτα Τίποτα, επιστροφή στον κόμβο πατέρα. M Εμφάνισε τα περιεχόμενα του κόμβου. M M Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του δεξιού υποδέντρου. τίποτα Τίποτα, επιστροφή στον κόμβο πατέρα. M Eπιστροφή στον κόμβο πατέρα. 26

27 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου -4- P Εμφάνισε τα περιεχόμενα του κόμβου. P P Κλήση της RecBSTInorder με δείκτη στη ρίζα (NULL) του δεξιού υποδέντρου. τίποτα Τίποτα, επιστροφή στον κόμβο πατέρα. P K Eπιστροφή στον κόμβο πατέρα. Τέλος της διαδικασίας. Η διάσχιση ολοκληρώθηκε. 27

28 Παράδειγμα ενδοδιατεταγμένης διάσχισης δέντρου -5- Η ενδοθεματική διάσχιση που εκτελέσαμε για το παραπάνω δέντρο, εμφανίζει τα περιεχόμενα των κόμβων με αλφαβητική σειρά: D, F, H, K, M, P κι αυτό συμβαίνει γιατί, στην πραγματικότητα, πρόκειται όχι για ένα απλό δυαδικό δέντρο, αλλά για ένα ΔΔΑ. Έτσι, λοιπόν, για κάθε κόμβο η τιμή που είναι αποθηκευμένη στο αριστερό παιδί του είναι μικρότερη από την τιμή του κόμβου αυτού και η τελευταία είναι μικρότερη από αυτήν που είναι αποθηκευμένη στο δεξί παιδί του κόμβου. Επομένως, όλες οι τιμές που βρίσκονται σε κόμβους του αριστερού υποδέντρου ενός κόμβου είναι μικρότερες από την τιμή του κόμβου αυτού και η τιμή του κόμβου είναι με τη σειρά της μικρότερη από όλες τις τιμές των κόμβων του δεξιού υποδέντρου του. Αφού, λοιπόν, μια ενδοθεματική διάσχιση είναι μια διάσχιση με διάταξη LNR, συμπεραίνουμε ότι η επίσκεψη των κόμβων γίνεται με αλφαβητική σειρά. 28

29 Διαδικασία αναδρομικής αναζήτησης σε ΔΔΑ -1- void RecBSTSearch(BinTreePointer Root, BinTreeElementType KeyValue, boolean *Found, BinTreePointer *LocPtr) /*Δέχεται: Ένα ΔΔΑ με το δείκτη Root να δείχνει στη ρίζα του και μια τιμή KeyValue. Λειτουργία: Εκτελεί αναδρομική αναζήτηση στο ΔΔΑ για έναν κόμβο με τιμή KeyValue στο πεδίο κλειδί του. Επιστρέφει: Η Found έχει τιμή TRUE και ο δείκτης LocPtr δείχνει στον κόμβο που περιέχει την τιμή KeyValue, αν η αναζήτηση είναι επιτυχής. Διαφορετικά η Found έχει τιμή FALSE.*/ 29

30 Διαδικασία αναδρομικής αναζήτησης σε ΔΔΑ -2- { } if (BSTEmpty(Root)) *Found = FALSE; else if (KeyValue < Root->Data) RecBSTSearch(Root->LChild, KeyValue, &(*Found), &(*LocPtr)); else if (KeyValue > Root->Data) RecBSTSearch(Root->RChild, KeyValue, &(*Found), &(*LocPtr)); else { *Found = TRUE; *LocPtr = Root; } 30

31 Αναδρομική διαδικασία εισαγωγής στοιχείου -1- void RecBSTInsert(BinTreePointer *Root, BinTreeElementType Item) /*Δέχεται: Ένα ΔΔΑ με το δείκτη Root να δείχνει στη ρίζα του και ένα στοιχείο Item. Λειτουργία: Εισάγει αναδρομικά το στοιχείο Item στο ΔΔΑ. Επιστρέφει: Το τροποποιημένο ΔΔΑ με τον δείκτη Root να δείχνει στη ρίζα του.*/ 31

32 Αναδρομική διαδικασία εισαγωγής στοιχείου -2- { } if (BSTEmpty(*Root)) { (*Root) = (BinTreePointer)malloc(sizeof (struct BinTreeNode)); (*Root) ->Data = Item; (*Root) ->LChild = NULL; (*Root) ->RChild = NULL; } else if (Item < (*Root) ->Data) RecBSTInsert(&(*Root) ->LChild,Item); else if (Item > (*Root) ->Data) RecBSTInsert(&(*Root) ->RChild,Item); else printf("to %d EINAI HDH STO DDA\n", Item); 32

33 Αναδρομική διαδικασία εισαγωγής διαγραφής -1- void RecBSTDelete(BinTreePointer *Root, BinTreeElementType KeyValue) /*Δέχεται: Ένα ΔΔΑ με το δείκτη Root να δείχνει στη ρίζα του και μια τιμή KeyValue. Λειτουργία: Προσπαθεί αναδρομικά να βρει έναν κόμβο στο ΔΔΑ που να περιέχει την τιμή KeyValue στο πεδίο κλειδί του τμήματος δεδομένων του και, αν τον βρει, τον διαγράφει από το ΔΔΑ. Επιστρέφει: Το τροποποιημένο ΔΔΑ με τον δείκτη Root να δείχνει στη ρίζα του/ 33

34 Αναδρομική διαδικασία εισαγωγής διαγραφής -2- { BinTreePointer TempPtr; if (BSTEmpty(*Root)) printf("to %d DeN BRE8HKe STO DDA\n", KeyValue); else if (KeyValue < (*Root)->Data) RecBSTDelete(&((*Root)->LChild), KeyValue); else if (KeyValue > (*Root)->Data) RecBSTDelete(&((*Root)->RChild), KeyValue); else if ((*Root)->LChild == NULL) { } TempPtr = *Root; *Root = (*Root)->RChild; free(tempptr ); 34

35 Αναδρομική διαδικασία εισαγωγής διαγραφής -3- else if ((*Root)->RChild == NULL) { TempPtr = *Root; *Root = (*Root)-> LChild; free(tempptr ); } else { TempPtr = (*Root)->RChild; while (TempPtr->LChild!= NULL) TempPtr = TempPtr->LChild; (*Root)->Data = TempPtr->Data; RecBSTDelete(&((*Root)->RChild), (*Root)->Data); } } 35

36 Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman 36

37 Κώδικας μεταβλητού μήκους -1- Τα δυαδικά δέντρα μπορούν να χρησιμοποιηθούν σε πολλά προβλήματα κωδικοποίησης (encoding) και αποκωδικοποίησης (decoding). Ένα παράδειγμα είναι η κωδικοποίηση και αποκωδικοποίηση ενός μηνύματος που μεταφέρεται με σήματα Morse, όπου κάθε χαρακτήρας αναπαρίσταται με μια σειρά από τελείες και παύλες: Για παράδειγμα, το γράμμα Α συμβολίζεται ως.-, το γράμμα Β ως -..., το γράμμα C ως -.-., κλπ. Όταν χρησιμοποιείται ο κώδικας Morse, το πλήθος των συμβόλων που απαιτείται για την παράσταση κάθε γράμματος δεν είναι σταθερό. Το Α, για παράδειγμα θέλει δύο σύμβολα, ενώ το Β και το C θέλουν από τέσσερα. Ένας τέτοιος κώδικας ονομάζεται κώδικας μεταβλητού μήκους (variable-length code). 37

38 Κώδικας μεταβλητού μήκους -2- Στη συνέχεια θα ασχοληθούμε με τους Κώδικες Huffman, που είναι επίσης μεταβλητού μήκους κώδικες. Η βασική ιδέα στους κώδικες μεταβλητού μήκους είναι να χρησιμοποιούνται μικρότεροι κωδικοί για τους χαρακτήρες που εμφανίζονται πιο συχνά και μεγαλύτεροι γι' αυτούς που εμφανίζονται λιγότερο συχνά. Ο σκοπός είναι να μειωθεί το αναμενόμενο μήκος του κωδικού ενός χαρακτήρα ώστε να περιοριστεί και το πλήθος των bits που απαιτούνται για την μετάδοση του κωδικοποιημένου μηνύματος. 38

39 Κώδικας μεταβλητού μήκους: αναμενόμενο μήκος -1- Υποθέτουμε ότι για ένα σύνολο χαρακτήρων C 1, C 2,..., C n, υπάρχει ένα σύνολο βαρών w 1,w 2,...,w n, που σχετίζεται με αυτούς τους χαρακτήρες, δηλαδή w i είναι το βάρος που αντιστοιχεί στον χαρακτήρα C i και είναι ένα μέτρο (πιθανότητα ή σχετική συχνότητα) του πόσο συχνά εμφανίζεται αυτός ο χαρακτήρας σε μηνύματα που πρόκειται να κωδικοποιηθούν. Αν με l 1,l 2,...,l n συμβολίσουμε τα μήκη των κωδικών των χαρακτήρων C 1,C 2,...,C n αντίστοιχα, τότε το αναμενόμενο μήκος του κώδικα για καθένα από τους χαρακτήρες αυτούς είναι: n αναμενόμενο μήκος = w w l i i 1 l 1 +w 2 l w n l n = i 1 39

40 Κώδικας μεταβλητού μήκους: αναμενόμενο μήκος -2- Έστω ότι έχουμε τους χαρακτήρες A, B, C, D και E και ότι οι πιθανότητες εμφάνισης αυτών των χαρακτήρων είναι τα βάρη που φαίνονται στον διπλανό πίνακα: Αναπαράσταση του συνόλου χαρακτήρων σε κώδικα Morse με τελείες και παύλες στην 2η στήλη, ενώ στην 3η στήλη οι τελείες έχουν αντικατασταθεί με 0 και οι παύλες με 1: Χαρακτήρας Κωδικός Morse(1) Κωδικός Morse(2) Α.- 01 Β C D E. 0 Αναμενόμενο μήκος κώδικα για τους παραπάνω πέντε χαρακτήρες: 2* * * * *0.45 = 2.1 Χαρακτήρας Α 0.2 Β 0.15 C 0.05 D 0.15 E 0.45 Βάρος 40

41 Άμεσα αποκωδικοποιήσιμα συστήματα -1- Μια σημαντική ιδιότητα μερικών συστημάτων κωδικοποίησης είναι ότι είναι άμεσα αποκωδικοποιήσιμα (immediately decodable), δηλαδή καμία ακολουθία από bits, που αναπαριστά έναν χαρακτήρα, δεν αποτελεί πρόθεμα κάποιας μεγαλύτερης ακολουθίας bits, που να αναπαριστά έναν άλλο χαρακτήρα. Αυτό έχει ως συνέπεια, η λήψη μιας ακολουθίας από bits να αποκωδικοποιείται αμέσως στον αντίστοιχο χαρακτήρα, χωρίς να χρειάζεται να περιμένουμε επόμενα bits για να σχηματίσουμε μια μεγαλύτερη ακολουθία, που πιθανόν να αντιστοιχεί σε άλλον χαρακτήρα. Την ιδιότητα αυτή δεν την έχει ο κώδικας Morse κι αυτό φαίνεται στον πίνακα που παρουσιάσαμε. Ο κωδικός του D (100) είναι πρόθεμα του αντίστοιχου για τον χαρακτήρα Β (1000) και ο κωδικός του χαρακτήρα E (0) αποτελεί πρόθεμα του χαρακτήρα Α (01). 41

42 Άμεσα αποκωδικοποιήσιμα συστήματα -2- Μια κωδικοποίηση των χαρακτήρων A, B, C, D και E με το ίδιο μήκος κωδικών, όπως και παραπάνω, αλλά που είναι συγχρόνως άμεσα αποκωδικοποιήσιμη, φαίνεται στον πίνακα που ακολουθεί: Για την κωδικοποίηση χαρακτήρων με τρόπο ώστε να έχουν το μικρότερο αναμενόμενο μήκος και να αποκωδικοποιούνται αμέσως, μπορεί να χρησιμοποιηθεί ο αλγόριθμος του D. A. Huffman που παρουσιάζεται στη συνέχεια. Χαρακτήρας Α 01 Β 0001 C 0000 D 001 E 1 Κωδικός 42

43 Αλγόριθμος Huffman -1- /*Δέχεται: Ένα σύνολο από n χαρακτήρες {C1,C2,...,Cn} και ένα σύνολο από βάρη {w1,w2,...,wn}, όπου wi είναι το βάρος του χαρακτήρα Ci. Λειτουργία: Κατασκευάζει ένα δυαδικό κωδικό για το δοσμένο σύνολο χαρακτήρων, όπου το αναμενόμενο μήκος της ακολουθίας bits κάθε χαρακτήρα είναι το ελάχιστο. Επιστρέφει: Μια συλλογή από n ακολουθίες bits που αναπαριστούν κωδικούς των χαρακτήρων.*/ 43

44 Αλγόριθμος Huffman -2- Αρχικοποίησε μια λίστα από δυαδικά δέντρα ενός κόμβου που να περιέχουν τα βάρη w1,w2,...,wn, ένα για κάθε χαρακτήρα του συνόλου {C1,C2,...,Cn} Για i από 1 μέχρι n-1 α. Βρες δύο δέντρα Τα και Τβ σ' αυτήν την λίστα με ρίζες τα ελάχιστα βάρη wα και wβ β. Αντικατέστησε τα δύο αυτά δέντρα με ένα δυαδικό δέντρο του οποίου η ρίζα είναι wα+wβ, τα υποδέντρα του είναι τα Τα και Τβ και θέσε ετικέτες 0 και 1 στους δείκτες προς τα δύο αυτά υποδέντρα αντίστοιχα: Τέλος_επανάληψης 3. Ο κωδικός του χαρακτήρα Ci είναι η ακολουθία bits που σχηματίζεται από την διαδρομή στο τελικό δυαδικό δέντρο που ξεκινά από τη ρίζα και καταλήγει στο φύλλο Ci 44

45 Εφαρμογή του αλγορίθμου Huffman -1- Ας εφαρμόσουμε τον αλγόριθμο Huffman στους χαρακτήρες A, B, C, D και E με βάρη αυτά που δόθηκαν παραπάνω. Ξεκινάμε κατασκευάζοντας μια λίστα από δυαδικά δέντρα ενός κόμβου, ένα για καθένα από τους πέντε χαρακτήρες: Επειδή στο βήμα 2.α του παραπάνω αλγόριθμου αναζητούνται τα δέντρα με τα ελάχιστα βάρη, διατάσσουμε τα δέντρα ενός κόμβου σε αύξουσα διάταξη. Τα δύο μικρότερα βάρη είναι αυτά που αντιστοιχούν στους χαρακτήρες C και B (εναλλακτικά μπορούμε να πάρουμε τα βάρη των C και D, γιατί οι χαρακτήρες B και D έχουν ίδιο βάρος). 45

46 Εφαρμογή του αλγορίθμου Huffman -2- Επομένως, τα δύο πρώτα δέντρα που επιλέγονται είναι τα δέντρα-κόμβοι που αντιστοιχούν στους χαρακτήρες C και B και κατασκευάζεται ένα δέντρο με βάρος =0.2 όπως δείχνει το ακόλουθο σχήμα: 46

47 Εφαρμογή του αλγορίθμου Huffman -3- Τώρα θα διαλέξουμε πάλι τα δύο μικρότερα βάρη από τη λίστα των τεσσάρων πλέον δυαδικών δέντρων του παραπάνω σχήματος. Τα βάρη είναι τώρα 0.2, 0.15, 0.2 και Από αυτά διαλέγουμε το δέντρο με βάρος 0.15 (μικρότερο από όλα) και ένα από τα δύο δέντρα που έχουν βάρος 0.2, για να προκύψει ένα δέντρο με βάρος =0.35. Έστω ότι διαλέγουμε το πρώτο, όπως φαίνεται παρακάτω 47

48 Εφαρμογή του αλγορίθμου Huffman -4- Από τα τρία δυαδικά δέντρα της λίστας επιλέγουμε πάλι τα δύο με τα μικρότερα βάρη. Οι τιμές των βαρών είναι 0.35, 0.2 και 0.45, οπότε η μόνη μας επιλογή είναι να συνδυάσουμε τα δέντρα με βάρη 0.35 και 0.2 και να προκύψει ένα δέντρο με βάρος =0.55: 48

49 Εφαρμογή του αλγορίθμου Huffman -5- Τώρα στη λίστα έχουν μείνει δύο δέντρα, τα οποία και συνδυάζονται για να προκύψει το τελικό δέντρο Huffman με βάρος =1.0 που φαίνεται παρακάτω: 49

50 Εφαρμογή του αλγορίθμου Huffman -6- Οι κωδικοί Huffman που προκύπτουν για καθένα από τους πέντε χαρακτήρες είναι: Χαρακτήρας Α 01 Β 0001 C 0000 D 001 E 1 Κωδικός Huffman Το αναμενόμενο μήκος κώδικα για τους χαρακτήρες αυτούς είναι πάλι: 2* * * * *0.45 =

51 Εφαρμογή του αλγορίθμου Huffman -7- Το παραπάνω δέντρο Huffman δεν είναι το μοναδικό που θα μπορούσε να κατασκευαστεί για τους συγκεκριμένους χαρακτήρες και τα αντίστοιχα βάρη τους. Μετά από την κατασκευή του δυαδικού δέντρου με βάρος 0.2: θα μπορούσαμε να επιλέξουμε τα δέντρα που αντιστοιχούν στους χαρακτήρες D και Α και να κατασκευάσουμε ένα δέντρο με βάρος =0.35, όπως φαίνεται στο παρακάτω σχήμα: Το αναμενόμενο μήκος κώδικα για τους χαρακτήρες αυτούς είναι πάλι: 2* * * * *0.45 =

52 Εφαρμογή του αλγορίθμου Huffman -8- Στη συνέχεια, από τη λίστα με τα τρία δέντρα, επιλέγουμε τα δύο με τα μικρότερα βάρη, οπότε προκύπτει το δέντρο που φαίνεται στο ακόλουθο σχήμα: Το αναμενόμενο μήκος κώδικα για τους χαρακτήρες αυτούς είναι πάλι: 2* * * * *0.45 = 2.1 Τέλος, συνδυάζουμε τα δύο δέντρα με βάρη 0.55 και 0.45 και έχουμε κατασκευάσει το τελικό δέντρο Huffman, που διαφέρει από το προηγούμενο: 52

53 Εφαρμογή του αλγορίθμου Huffman -9- Οι κωδικοί Huffman που προκύπτουν από το τελευταίο σχήμα είναι: Χαρακτήρας Α 011 Β 001 C 000 D 010 E 1 Κωδικός Huffman Τέλος, συνδυάζουμε τα δύο δέντρα με βάρη 0.55 και 0.45 και έχουμε κατασκευάσει το τελικό δέντρο Huffman, που διαφέρει από το προηγούμενο: 53

54 Αλγόριθμος αποκωδικοποίησης Huffman -1- /*Δέχεται: Ένα δέντρο Huffman και μια ακολουθία από bits που αναπαριστά ένα μήνυμα, το οποίο έχει κωδικοποηθεί με χρήση του δέντρου Huffman. Λειτουργία: Αποκωδικοποιεί το μήνυμα. Επιστρέφει: Το αποκωδικοποιημένο μήνυμα.*/ 1. Αρχικοποίησε έναν δείκτη p να δείχνει στην ρίζα του δέντρου Huffman 54

55 Αλγόριθμος αποκωδικοποίησης Όσο δεν έχει βρεθεί το τέλος του μηνύματος επανάλαβε α. Έστω ότι x είναι το επόμενο bit στην ακολουθία χαρακτήρων β. Αν (x == 0) τότε p p->lchild Αλλιώς p Τέλος_αν p->rchild γ. Αν ο p δείχνει σε φύλλο τότε i. Εμφάνισε το χαρακτήρα που αντιστοιχεί σ' αυτό το φύλλο ii.να επαναφέρεις τον δείκτη p ώστε να δείχνει στην ρίζα του δέντρου Huffman Τέλος_αν Τέλος_επανάληψης Huffman -2-55

56 Εφαρμογή αλγόριθμου αποκωδικοποίησης Huffman -1- Για να δούμε πώς εφαρμόζεται ο παραπάνω αλγόριθμος, έστω ότι θέλουμε να αποκωδικοποιήσουμε το μήνυμα: που έχει κωδικοποιηθεί με χρήση του δεύτερου δέντρου Huffman που κατασκευάσαμε. Ο δείκτης p ξεκινά από τη ρίζα και ακολουθεί το μονοπάτι 001 που οδηγεί στο γράμμα B: B Στη συνέχεια, ο δείκτης p επανέρχεται και δείχνει στη ρίζα του δέντρου. Το bit 1 που ακολουθεί οδηγεί κατευθείαν στο φύλλο που αντιστοιχεί στο χαρακτήρα Ε: B Ε 56

57 Εφαρμογή αλγόριθμου αποκωδικοποίησης Huffman -2- Ο δείκτης p ξεκινά πάλι από τη ρίζα του δέντρου και διαγράφει το μονοπάτι 010, που οδηγεί στο φύλλο για τον χαρακτήρα D: B Ε D 57

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

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

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

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr 1 η ΑΣΚΗΣΗ ΣΤΗΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι - Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο

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

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

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

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

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

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

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

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

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

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

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

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

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 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 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,

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

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

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

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons και

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 9: Στατιστικά Διάταξης- Στατιστικά σε Μέσο Γραμμικό Χρόνο Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 7: Πεπερασμένη αναπαράσταση γλωσσών Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

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

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

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 7β: Όρια Αλγόριθμων Ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos.

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Δέντρα (Trees) - Ιεραρχική Δομή

Δέντρα (Trees) - Ιεραρχική Δομή Δέντρα (Trees) - Ιεραρχική Δομή Εφαρμογές Δομή Οργάνωση Αρχείων Οργανογράμματα Ορισμός (αναδρομικός ορισμός): Ένα δέντρο είναι ένα πεπερασμένο σύνολο κόμβων το οποίο είτε είναι κενό είτε μη κενό σύνολο

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

ΔυαδικάΔΕΝΔΡΑΑναζήτησης

ΔυαδικάΔΕΝΔΡΑΑναζήτησης ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια

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

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

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 21: Υπολογισμοί ΜΤ - Αναδρομικές Γλώσσες Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 1 Συμπίεση

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

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 18: Λήμμα Άντλησης για ΓΧΣ Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό

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

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

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

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

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

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

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

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

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

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

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

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

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

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΘΕΩΡΙΑ ΠΑΙΓΝΙΩΝ. Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 7: Τέλεια ισορροπία Nash για υποπαίγνια Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΝΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΣ ΔΔΟΜΝΩΝ ΚΙ ΛΓΟΡΙΘΜΟΙ ΗΜΡΟΜΗΝΙ: 14/11/2018 ΔΙΓΝΩΣΤΙΚΟ ΠΝΩ Σ ΔΝΔΡΙΚΣ ΔΟΜΣ ΚΙ ΓΡΦΟΥΣ Διάρκεια: 45 λεπτά Ονοματεπώνυμο:. ρ. Ταυτότητας:. ΒΘΜΟΛΟΓΙ ΣΚΗΣΗ ΒΘΜΟΣ

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

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

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

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

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής Άδειες Χρήσης

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 3: Δένδρα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

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

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

Εργασία 3 Σκελετοί Λύσεων Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 Χρησιμοποιούμε τη δομή typedef struct TNode{ int key; struct TNode *left; struct TNode *right; tnode; και υποθέτουμε πως ένα δυαδικό δένδρο είναι υλοποιημένο ως δείκτης

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

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

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

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

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Ενότητα 3: Άλγεβρα Βοole και Λογικές Πράξεις Δρ. Φραγκούλης Γεώργιος Τμήμα Ηλεκτρολογίας Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

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

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

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

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

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

Θεωρία τησ Πληροφορίασ (Θ) ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ

Θεωρία τησ Πληροφορίασ (Θ) ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ Θεωρία τησ Πληροφορίασ (Θ) Ενότητα 4: Συμπίεςη χωρίσ Απώλειεσ ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ ΧΟΛΗ ΣΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΣΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΣΕ Άδειεσ Χρήςησ Σο παρόν εκπαιδευτικό υλικό υπόκειται

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

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

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

Θέματα Συστημάτων Πολυμέσων

Θέματα Συστημάτων Πολυμέσων Θέματα Συστημάτων Πολυμέσων Ενότητα # 6: Στοιχεία Θεωρίας Πληροφορίας Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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