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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

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

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

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

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

ιαφάνειες παρουσίασης #11

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

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

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

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files.

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

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

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

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

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

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

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

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

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

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

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

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

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

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

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

υαδικό έντρο Αναζήτησης (BSTree)

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

Εργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

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

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

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

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

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

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

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

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

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

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

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

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

Πληρότητα της μεθόδου επίλυσης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Δέντρα

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

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

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

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

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

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

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

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

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

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

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

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

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

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 4η Θεωρία Γραφηµάτων

Πλήθος ισομερών του C k H 2k+2

Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου. Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης)

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Transcript:

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

Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } : (i, j) Τ ή (j, i) T Κόμβος i ονομάζεται πατέρας (father) ή αμέσως προηγούμενος (immediate predecessor) του κόμβου j Κόμβος j ονομάζεται παιδί (child) ή αμέσως επόμενος (immediate successor) του κόμβου i. 2

Δέντρα (6) 1 2 3 4 (2, 5) Τ, Κόμβος 2 πατέρας του κόμβου 5 Κόμβος 5 παιδί του κόμβου 2 5 6 7 (7, 4) Τ, Κόμβος 4 πατέρας του κόμβου 7 Κόμβος 7 παιδί του κόμβου 4 8 9 3

Δέντρα (7) Αν κάθε κόμβος ενός δέντρου Τ έχει το πολύ δυο παιδιά, το δέντρο ονομάζεται δυαδικό (binary) 1 1 2 3 2 3 4 5 6 7 4 5 6 7 8 Δυαδικά Δέντρα 4

Δέντρα (8) Δομή ενός κόμβου σε συνδεδεμένη αναπαράσταση Δεδομένα Left Right Ρίζα αριστερού υποδένδρου Ρίζα δεξιού υποδένδρου αριστερό υποδένδρο δεξί υποδένδρο 5

Δέντρα (9) Αν κάθε επίπεδο βάθους t, 1 t h 1, ενός δέντρου Τ αποτελείται από το μέγιστο δυνατό πλήθος κόμβων 2 t το δέντρο Τ ονομάζεται πλήρες (complete tree) 1 Βάθος{Τ} = 3 2 3 4 5 6 7 Επίπεδο (βάθος) 2 Πλήθος κόμβων 2 2 = 4 8 9 10 6

Δέντρα (10) Κάθε διαδικασία επίσκεψης όλων των κόμβων ενός δένδρου, ακριβώς μια φορά τον καθένα, ονομάζεται διαπέραση ή διάσχιση (traversal). Προδιατεταγμένη διαπέραση (pre-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τον ίδιο τον κόμβο, έπειτα τους κόμβους του αριστερού του υποδένδρου και στη συνέχεια τους κόμβους του δεξιού του υποδένδρου. Μεταδιατεταγμένη διαπέραση (post-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τους κόμβους του αριστερού του υποδένδρου, έπειτα τους κόμβους του δεξιού του υποδένδρου και στη συνέχεια τον ίδιο τον κόμβο. Ενδοδιατεταγμένη διαπέραση (in-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τους κόμβους του αριστερού του υποδένδρου, έπειτα τον ίδιο τον κόμβο και στη συνέχεια τους κόμβους του δεξιού του υποδένδρου. Κατά σειρά επιπέδων διαπέραση (level-order): Διασχίζουμε τα επίπεδα του δένδρου, στη σειρά από πάνω προς τα κάτω, και σε κάθε επίπεδο επισκεπτόμαστε τους κόμβους από αριστερά προς τα δεξιά. 7

Δέντρα (11) Διάσχιση δυαδικού δέντρου 8

Δέντρα (12) Προδιατεταγμένη διάσχιση (preorder traversal) 9

Δέντρα (13) Ενδοδιατεταγμένη διάσχιση (inorder traversal) 10

Δέντρα (14) Μεταδιατεταγμένη διάσχιση (postorder traversal) 11

Δέντρα (15) Άσκηση. Δίνεται το διπλανό δυαδικό δέντρο Θεωρήστε ότι το δέντρο σαρώνεται κατά την προδιατεταγμένη διαπέραση (preorder traversal) και τα δεδομένα των κόμβων του εισάγονται σε μια στοίβα. Γράψτε τη στοίβα μετά τη διαπέραση. 12

Δέντρα (16) 38 40 33 35 20 15 18 2 5 14 30 13

Δέντρα (17) Ένα δέντρο παράστασης (expression tree) είναι ένα δυαδικό δέντρο με τις ακόλουθες ιδιότητες: Κάθε φύλλο είναι και ένας τελεστέος. Η ρίζα και οι εσωτερικοί κόμβοι είναι τελεστές. Τα υποδέντρα είναι δευτερεύουσες παραστάσεις, των οποίων η ρίζα είναι τελεστής. ενδοδιατεταγμένη (inorder) - ενθεματική παράσταση μεταδιατεταγμένη (postorder) - επιθεματική παράσταση προδιατεταγμένη (preorder) -προθεματική παράσταση 14

Δέντρα (18) Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Το αριστερό υποδένδρο κάθε κόμβου έχει τιμές μικρότερες από την τιμή του κόμβου. Το δεξί υποδένδρο κάθε κόμβου έχει τιμές μεγαλύτερες από την τιμή του κόμβου. Χρησιμοποιούνται στην αναζήτηση στοιχείων, όπου ενδέχεται να βελτιώσουν σημαντικά το χρόνο (αντίστοιχα με τη δυαδική αναζήτηση σε ταξινομημένο πίνακα). Με ενδοδιατεταγμένη διαπέραση παίρνουμε τα στοιχεία ταξινομημένα κατά αύξουσα σειρά. 15

Δέντρα (19) Δυαδικό Δέντρο Αναζήτησης Διαπέραση ΔΔΑ 16

Δέντρα (20) εισαγωγή στοιχείων σε ΔΔΑ: 8, 4, 12, 2, 6, 14, 18, 13 8 4 12 2 6 14 13 18 17

Αναζήτηση του στοιχείου 5. Δέντρα (21) 8 4 12 2 6 14 Δεν βρέθηκε 13 18 18

Δέντρα (22) Άσκηση: αναζητήστε ένα προς ένα όλα τα στοιχεία του δένδρου. Καταγράψτε το πλήθος συγκρίσεων μεταξύ των στοιχείων που απαιτούνται. στοιχείο συγκρίσεις 8 1 4 2 2 3 6 3 12 2 14 3 13 4 18 4 8 4 12 2 6 14 13 18 19

Δέντρα (23) Διαγραφές 1. Ο κόμβος που διαγράφεται δεν έχει υποδένδρα. 2. Ο κόμβος που διαγράφεται έχει μόνο ένα υποδένδρο. 3. Ο κόμβος που διαγράφεται έχει δύο υποδένδρα. 20

Δέντρα (24) Διαγραφή του 18: ο κόμβος που περιέχει το 18 δεν έχει υποδένδρα 8 8 4 12 4 12 2 6 14 2 6 14 13 18 13 21

Δέντρα (25) Διαγραφή του 12: ο κόμβος που περιέχει το 12 έχει μόνο δεξί υποδένδρο 8 8 4 12 4 14 2 6 14 2 6 13 13 22

Δέντρα (26) Διαγραφή του 8. Αντικατάσταση με το μεγαλύτερο του αριστερού υποδένδρου ή με το μικρότερο του δεξιού υποδέντρου. 8 6 4 12 4 12 2 6 14 2 14 13 18 13 18 23

Quiz-[10] Hitting a Battleship Ποιος είναι ο ελάχιστος αριθμός χτυπημάτων που απαιτούνται στο παιχνίδι Ναυμαχία προκειμένου να χτυπηθεί ένα θωρηκτό (battleship)? Ένα θωρηκτό καταλαμβάνει χώρο 4 Χ 1 σε μια επιφάνεια 10x10. Το θωρηκτό μπορεί να τοποθετηθεί οπουδήποτε, είτε οριζόντια είτε κάθετα, στην επιφάνεια. Υποθέστε ότι δεν υπάρχουν άλλα πλοία στην επιφάνεια. 24

Quiz-[10] 25