Δομές δεδομένων

Παπαδόπουλος Απόστολος

Περιγραφή

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

 

 

 

CC - Αναφορά - Μη Εμπορική Χρήση - Όχι Παράγωγα Έργα
Διδάσκοντες

Διδάσκων: Απόστολος Παπαδόπουλος, επίκουρος καθηγητής

http://delab.csd.auth.gr/~apostol/

 

Συνεργάτης ανάπτυξης περιεχομένου: Απόστολος Μαυρίδης

Μαθησιακοί στόχοι

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

Προαπαιτούμενα

Βασικές γνώσεις προγραμματισμού με C++

Βιβλιογραφία
  1. S. Sahni, Μετάφραση Ι. Μανωλόπουλος και Ι. Θεοδωρίδης, Δομές Δεδομένων, Αλγόριθμοι και Εφαρμογές στη C++, Εκδόσεις Τζιόλα, 2004. Στην ιστοσελίδα του μαθήματος δίνονται επίσης επιπλέον σημειώσεις και σύνδεσμοι για συγκεκριμένα θέματα, για την καλύτερη κατανόηση των εννοιών.
  2. Π. Μποζάνης. Αλγόριθμοι: Σχεδιασμός και Ανάλυση. Εκδόσεις Τζιόλα, Θεσσαλονίκη, 2003. 
  3. Γ.Φ. Γεωργακόπουλος. Δομές Δεδομένων, Έννοιες, Τεχνικές και Αλγόριθμοι. Πανεπιστημιακές Εκδόσεις Κρήτης

 

Επιπλέον συνιστώμενη βιβλιογραφία:

T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein. Introduction to Algorithms (2nd Edition). The MIT Press, 2003.  K. Mehlhorn. Data Structures and Algorithms. Springer Verlag, EATCS Monographs, 1984.

 

Ενότητες

Εισαγωγή στις δομές δεδομένων

 

Λέξεις κλειδιά: Εισαγωγικά Θέματα, Δομές Δεδομένων, Hardware

Θέματα απόδοσης αλγορίθμων: ασυμπτωτική ανάλυση, συμβολισμοί Ο,Ω,Θ, χειρότερη, μέση και καλύτερη περίπτωση.

 

Λέξεις κλειδιά: Απόδοση Αλγορίθμων, Μέτρηση Απόδοσης, Ασυμπτωτική Ανάλυση, Ρυθμός Αύξησης, Συμβολισμός Ο, Συμβολισμός Ω, Συμβολισμός Θ, Χειρότερη Περίπτωση, Μέση Περίπτωση, Καλύτερη Περίπτωση.

Στοίβες: Λειτουργία της στοίβας, επιτρεπτές πράξεις και μορφές οργάνωσης (με πίνακες, με δυναμική δέσμευση μνήμης). Εφαρμογές: μετατροπή infix σε postfix, εύρεση μονοπατιού σε λαβύρινθο.

 

Λέξεις κλειδιά: Στοίβες (Stacks), Προτεραιότητες Τελεστών, Εφαρμογή Στοίβας, Infix, Postfix.

Ουρές: Ουρές προτεραιότητας, λειτουργίες και εφαρμογές.

 

Λέξεις κλειδιά:Ουρές (Queues), Ουρές Προτεραιότητας (Priority Queues)

Δυαδικά δένδρα: δυαδικά δένδρα αναζήτησης, εισαγωγή και διαγραφή, λειτουργίες και εφαρμογές, ισοζυγισμένα δυαδικά δένδρα αναζήτησης AVL και δένδρα αναζήτησης πολλών δρόμων.

 

Λέξεις κλειδιά:Δυαδικά Δένδρα (Binary Trees), Δυαδικά Δένδρα Αναζήτησης (Binary Search Trees), Ισοζυγισμένα Δυαδικά Δένδρα (Balanced Binary Trees), Δένδρα Αναζήτησης m-δρόμων, Πολυδιάστατα Δένδρα (Multidimensional Trees)

Γραφήματα: Αναζήτηση πρώτα σε βάθος (DFS) σε κατευθυνόμενο γράφημα, ελάχιστα ζευγνύοντα δένδρα, τοπολογική ταξινόμηση.      

 

Λέξεις κλειδιά: DFS, Κατευθυνόμενος Γράφο, Ελάχιστα Μονοπάτια, Τοπολογική Ταξινόμηση, Ελάχιστα Ζευγνύοντα Δένδρα

Ανοικτό Ακαδ. Μάθημα

Ανοικτά Ακαδημαϊκά Μαθήματα
Επίπεδο: A-

Αρ. Επισκέψεων :  3745
Αρ. Προβολών :  21399