EPL231 – Data Structures and Algorithms

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Έστω πίνακας Α χιλίων θέσεων που περιέχει πραγματικούς αριθμούς
Advertisements

Πίνακες.
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
12 Δενδρικές Μέθοδοι Προσπέλασης  Β-δένδρα  Β*-δένδρα  Β + -δένδρα  Άλλες παραλλαγές των Β-δένδρων.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Lab 6: AVL Trees 29/10/20101ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι.
Τομέας Πληροφορικής ΙΕΚ ΔΕΛΤΑ Θεσσαλονίκη - Ιωάννινα
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Γιάννης Σταματίου Μερικά προβλήματα μέτρησης
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
A Balanced Tree Structure for Peer-to-Peer Networks
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Διεύθυνση Α/θμιας Εκπ/σης Ν. Σερρών Κατασκευή Ιστοσελίδας  Απόλυτα πεπεισμένοι πως η κοινωνία της γνώσης προσκαλεί αλλά και προκαλεί τα Στελέχη της Εκπαίδευσης.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
3D Space Invader Πετράκης Γιάννης. Περιγραφή παιχνιδιού Αποτελείται από Ένα όχημα που βρίσκεται στο έδαφος, κινείται στις δύο διαστάσεις και πυροβολεί.
Γιάννης Σταματίου Αναδρομή και αναδρομικές σχέσεις
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Συγγραφείς Α.Βακάλη Η. Γιαννόπουλος Ν. Ιωαννίδης Χ.Κοίλιας Κ. Μάλαμας Ι. Μανωλόπουλος Π. Πολίτης Γ΄ τάξη.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος ( ) Νίκος Παπασπύρου
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
1. 1. Εισαγωγή Φωτογραφίας Τοποθετούμε με το ποντίκι ή το πληκτρολόγιο το σημείο που θέλουμε να εισάγουμε την εικόνα Στην καρτέλα Insert πατούμε το κουμπί.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ ΤΗΣ ΚΙΝΗΣΗΣ ΚΑΤ’ ΟΙΚΟΝ ΕΡΓΑΣΙΑ. Σταθερή μηδενική ταχύτητα Περιγραφή της κίνησης: Το σώμα είναι ακίνητο, μπορεί να έχει οποιαδήποτε θέση.
Παράδειγμα B + -Tree Υποθέτουμε B + -Tree τάξης 3 (α=2, b=3)  Κάθε φύλλο θα έχει 2 ως 3 το πολύ στοιχεία  Κάθε εσωτερικός κόμβος θα έχει 2 ως 3 το πολύ.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
9-1 ΜΑΘΗΜΑ 9 ο Δυαδικά Δένδρα, Διάσχιση Δυαδικών Δένδρων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Ο Άνθρωπος είναι ένα ον το οποίο φτιάχνει πολιτισμό και έχει βαθύ στοχασμό, συναισθήματα και σεβασμό στη ζωή των άλλων. Ορισμός.
ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ ΔΕΝΔΡΑ.
17η Διάλεξη Ισορροπημένα δέντρα Ε. Μαρκάκης
1.  Τα κύματα δημιουργούνται όταν ένα σύστημα διαταράσσεται από την κατάσταση ισορροπίας και η ενέργεια ταξιδεύει από μια περιοχή του συστήματος σε.
Επιλογή επαγγέλματος στο σύγχρονο περιβάλλον Χρήση του « γενεογράμματος » για κατανόηση της πολυπολιτισμικής κοινωνίας και διερεύνηση των περιβαλλοντικών.
Labyrinth Project : AIBO and Labyrinth. Βασική Ιδέα Απόδραση του ΑΙΒΟ από λαβύρινθο Χρηση αλγορίθμου Left Wall Following Καταγραφή των κελιών που πέρασε.
ΗΛΕΚΤΡΟΚΑΡΔΙΟΓΡΑΦΗΜΑ
Δυναμικός Κατακερματισμός
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Δένδρα.
EPL231 – Data Structures and Algorithms
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Αναζήτηση με Αντιπαλότητα
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
ONLINE ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΩΝ ΚΑΙ OBLIVOUS ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ ΔΙΚΤΥΑ ΑΙΣΘΗΤΗΡΩΝ ONLINE ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΩΝ ΚΑΙ OBLIVOUS ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ ΔΙΚΤΥΑ ΑΙΣΘΗΤΗΡΩΝ Ζώντου Αικατερίνη.
14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Δομές Δεδομένων και Τεχνικές Προγραμματισμού
Λειτουργικά Συστήματα
Αρχες διοικησησ & διαχειρισησ εργων
Δυναμικός Κατακερματισμός
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

EPL231 – Data Structures and Algorithms Lab 6: AVL Trees EPL231 – Data Structures and Algorithms

AVL Δέντρα AVL δέντρο: Χρόνοι: Είναι Δυαδικό Δέντρο Αναζήτησης Τα υποδέντρα ενός οποιουδήποτε κόμβου έχουν ύψος το οποίο διαφέρει το πολύ κατά ένα Χρόνοι: Εισαγωγή Διαγραφή Αναζήτηση 4/12/2017

Παραδείγματα AVL Δέντρων 2 2 1 3 4 2 3 4 2 1 2 1 3 4/12/2017

Παραδείγματα Εκτέλεσης 4/12/2017

Παράδειγμα Εισαγωγή των στοιχείων {72, 26, 9} Εισαγωγή 72: ΠΕΡΙΣΤΡΟΦΗ Εισαγωγή 26: 72 ΑΝΙΣΟΖΥΓΙΑ Εισαγωγή 9: 26 9 4/12/2017

Αριστερή Περιστροφή Πριν την εισαγωγή: τα δένδρα R, S, T έχουν το ίδιο ύψος, h. Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο R με αποτέλεσμα το ύψος του να γίνει h+1. Η αριστερή περιστροφή υλοποιεί το εξής: Α B A περιστροφή Β C A h+1 h C h+1 h T h R h h R S S T 4/12/2017

Διαδικασία Α-περιστροφής Αριστερή περιστροφή του (A,B) σημαίνει Α.left = Β.right Β.right = Α Α.height = C.height+1 Β.height = C.height + 2 Πριν την περιστροφή ο Α ήταν ο πατέρας του Β, και μετά, ο Β είναι ο πατέρας του Α. Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης: Κάθε τιμή του Υ είναι μικρότερη από την τιμή του u, η τιμή του u είναι μεγαλύτερη από την τιμή του v.   Μετά την περιστροφή το δένδρο είναι AVL: Α.height = h + 1 = ύψος του R. 4/12/2017

Παράδειγμα Α-περιστροφής 50 42 5 46 43 Α-ΠΕΡΙΣΤΡΟΦΗ ΑΝΙΣΟΖΥΓΙΑ 72 99 61 58 51 65 4/12/2017

Δεξιά Περιστροφή Συμμετρική ως προς την αριστερή περιστροφή. Συμμετρική ως προς την αριστερή περιστροφή. Πριν την εισαγωγή: τα δένδρα R, S, T έχουν το ίδιο ύψος, h. Μετά την εισαγωγή: έστω ότι ο κόμβος εισάγεται στο δένδρο Τ με αποτέλεσμα το ύψος του Τ να γίνει h+1. Α C Β C Δ περιστροφή A h h+1 B R h h+1 T S h h+1 R S T 4/12/2017

Διαδικασία Δ-περιστροφής Δεξιά περιστροφή του (A,C) σημαίνει Α.right = C.left C.left = Α Α.height = B.height+1 C.height = B.height + 2 Πριν την περιστροφή ο Α ήταν ο πατέρας του C, και μετά, ο C είναι ο πατέρας του Α. Το δένδρο παραμένει δυαδικό δένδρο αναζήτησης. 4/12/2017

ΑΔ-Περιστροφή Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. u w AΔ περιστροφή v h v u W h+1 h+1 h w X Y Z W X h+1 h Y Z 4/12/2017

Παράδειγμα ΑΔ-περιστροφής Με την εισαγωγή των στοιχείων 72, 26, 9, 2, 21, 25 σε ένα ΑVL-δένδρο, δημιουργείται ανισοζυγία στον κόμβο 26.  Με εφαρμογή ΑΔ περιστροφής έχουμε: ΑΔ ΠΕΡΙΣΤΡΟΦΗ ΑΝΙΣΟΖΥΓΙΑ 26 9 72 2 21 25 4/12/2017

ΔA-Περιστροφή Τα δένδρα Χ και W έχουν ύψος h. Μετά από κάποια εισαγωγή, το w έχει ύψος h+1, προκαλώντας ανισοζυγία στο u. u w ΔΑ περιστροφή u v h v X h+1 h+1 X Y Z W w h W h h+1 Y Z 4/12/2017

Παράδειγμα ΔΑ περιστροφής 4 ΔΑ ΠΕΡΙΣΤΡΟΦΗ ΑΝΙΣΟΖΥΓΙΑ 2 6 1 5 3 14 7 15 13 4/12/2017

Διαδικασίες ΑΔ και ΔΑ-περιστροφής Διαδικασίες ΑΔ και ΔΑ-περιστροφής ΑΔ περιστροφή του (u,v,w) υλοποιείται ως εξής: v.right = w.left, u.left = w.right, w.left = v, w.right = u, v.height, u.height, w.height = … ΔΑ περιστροφή του (u,v,w) υλοποιείται ως εξής: v.left = w.right, u.right = w.left, w.left = u, w.right = v, και v.height, u.height, w.height = …. H περιστροφές δεν παραβιάζουν τη ΔΔΑ συνθήκη. Το δένδρο που δημιουργείται είναι AVL-δένδρο (οι κόμβοι v και u έχουν ύψος h+1). 4/12/2017

Πως αποφασίζουμε το είδος της περιστροφής Στην θεωρία είναι εύκολο. Βλέπουμε τις κατευθύνσεις που ακολουθήσαμε για να εισάξουμε τον κόμβο Ανάλογα με τις κατευθύνσεις, επιλέγουμε το είδος της περιστροφής. Τι γίνεται τώρα που πρέπει να γράψουμε κώδικα? 4/12/2017

Πως αποφασίζουμε το είδος της περιστροφής Περιστροφή αριστερά: Κάναμε εισαγωγή αριστερά δύο φορές  Αριστερή Περιστροφή singleRotationLeft() Κάναμε εισαγωγή αριστερά και μετά δεξία  ΑΔ περιστροφήdoubleRotationLeftRight() Περιστροφή δεξιά: Κάναμε εισαγωγή δεξιά δύο φορές  Δεξιά ΠεριστροφήsingleRotationRight() Κάναμε εισαγωγή δεξιά και μετά αριστερά  ΔΑ περιστροφήdoubleRotationRightLeft() 4/12/2017

Δομές – Συναρτήσεις Βρίσκονται στα αρχεία Συμπληρώστε την: Υλοποίηστε: AVLTree.h AVLTree.cpp Συμπληρώστε την: insertNode() Υλοποίηστε: singleRotationLeft() singleRotationRight() doubleRotationLeftRight() doubleRotationRightLeft() 4/12/2017

The End