Δομές Δεδομένων (2.005)
Παρασκευή Φραγκοπούλου
Το μάθημα «Δομές Δεδομένων» στοχεύει να δώσει στους φοιτητές / τριες τις απαραίτητες γνώσεις πάνω στον τρόπο οργάνωσης των δεδομένων στην κύρια μνήμη του υπολογιστή. Το μάθημα θα καλύψει θεωρητικά και πρακτικά θέματα που σχετίζονται με τον τρόπο με τον οποίο οργανώνονται τα δεδομένα στην μνήμη του υπολογιστή, προκειμένου να εξοικονομήσουμε χώρο και χρόνο κατά την επεξεργασία τους. Θα υπάρχει επίσης αναφορά σε συγκεκριμένους αλγόριθμους για την υλοποίηση των εξεταζόμενων δομών. Η υλοποίηση των δομών δεδομένων θα γίνεται με την χρήση της γλώσσας προγραμματισμού C, κατ’αυτόν δε τον τρόπο ο φοιτητής / τρια γνωρίζει σε βάθος τη συγκεκριμένη γλώσσα, αφού γίνεται αναφορά σε συγκεκριμένα θέματα, όπως η δυναμική δέσμευση μνήμης.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:
- Κατανοεί τον τρόπο οργάνωσης των δεδομένων στη μνήμη του υπολογιστή.
- Γνωρίζει σε βάθος ον τρόπο υλοποίησης δομών δεδομένων, όπως και εργαλεία τα οποία χρησιμοποιούνται για την δημιουργία και διαχείριση δομών.
- Εκτιμά ποιές είναι οι κατάλληλες δομές που θα χρειαστεί, ανάλογα με την φύση του προβλήματος που καλείται να αντιμετωπίσει και να τις υλοποιεί.
- Γνωρίζει ή και να επινοεί αλγόριθμους, οι οποίοι θα δρούν πάνω στις δομές που χρησιμοποιεί και να τους υλοποιεί, συνεκτιμώντας το κόστος από άποψη χώρου και χρόνου υλοποίησης.
Ενότητες Θεωρητικών Διαλέξεων
- Εισαγωγή.
- Πίνακες (Μονοδιάστατοι, διδιάστατοι, ειδικές μορφές πινάκων, πίνακες ως ορίσματα συναρτήσεων).
- Structures (Γενικά, απλές και ένθετες structures, πίνακες από structures, structures και συναρτήσεις, δείκτες και structures).
- Δυναμική δέσμευση μνήμης (Malloc, calloc, realloc, free. Δυναμικοί πίνακες).
- Στοίβες και ουρές.
- Λίστες (Απλά και διπλά συνδεδεμένες, κυκλικές, υλοποίηση, λειτουργίες στις λίστες).
- Δέντρα (Δυαδικά δέντρα και εφαρμογές, BST, σωροί, ψηφιακά δέντρα, tries, AVL δέντρα, κοκκινόμαυρα δέντρα, B-δέντρα, τετραδικά δέντρα).
- Γράφοι (πίνακες και λίστες γειτονικών κορυφών, διάσχιση γράφων, ζευγνύοντα δέντρα, αλγόριθμοι Prim, Kruskal, Dijkstra).
Εργαστηριακές Ασκήσεις
Ασκήσεις με χρήση γλώσσας προγραμματισμού C και λογισμικό Dev C++ και Linux (gcc).
Το μάθημα «Δομές Δεδομένων» στοχεύει να δώσει στους φοιτητές / τριες τις απαραίτητες γνώσεις πάνω στον τρόπο οργάνωσης των δεδομένων στην κύρια μνήμη του υπολογιστή. Το μάθημα θα καλύψει θεωρητικά και πρακτικά θέματα που σχετίζονται με τον τρόπο με τον οποίο οργανώνονται τα δεδομένα στην μνήμη του υπολογιστή, προκειμένου να εξοικονομήσουμε χώρο και χρόνο κατά την επεξεργασία τους. Θα υπάρχει επίσης αναφορά σε συγκεκριμένους αλγόριθμους για την υλοποίηση των εξεταζόμενων δομών. Η υλοποίηση των δομών δεδομένων θα γίνεται με την χρήση της γλώσσας προγραμματισμού C, κατ’αυτόν δε τον τρόπο ο φοιτητής / τρια γνωρίζει σε βάθος τη συγκεκριμένη γλώσσα, αφού γίνεται αναφορά σε συγκεκριμένα θέματα, όπως η δυναμική δέσμευση μνήμης.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:
- Κατανοεί τον τρόπο οργάνωσης των δεδομένων στη μνήμη του υπολογιστή.
- Γνωρίζει σε βάθος ον τρόπο υλοποίησης δομών δεδομένων, όπως και εργαλεία τα οποία χρησιμοποιούνται για την δημιουργία και
Το μάθημα «Δομές Δεδομένων» στοχεύει να δώσει στους φοιτητές / τριες τις απαραίτητες γνώσεις πάνω στον τρόπο οργάνωσης των δεδομένων στην κύρια μνήμη του υπολογιστή. Το μάθημα θα καλύψει θεωρητικά και πρακτικά θέματα που σχετίζονται με τον τρόπο με τον οποίο οργανώνονται τα δεδομένα στην μνήμη του υπολογιστή, προκειμένου να εξοικονομήσουμε χώρο και χρόνο κατά την επεξεργασία τους. Θα υπάρχει επίσης αναφορά σε συγκεκριμένους αλγόριθμους για την υλοποίηση των εξεταζόμενων δομών. Η υλοποίηση των δομών δεδομένων θα γίνεται με την χρήση της γλώσσας προγραμματισμού C, κατ’αυτόν δε τον τρόπο ο φοιτητής / τρια γνωρίζει σε βάθος τη συγκεκριμένη γλώσσα, αφού γίνεται αναφορά σε συγκεκριμένα θέματα, όπως η δυναμική δέσμευση μνήμης.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:
- Κατανοεί τον τρόπο οργάνωσης των δεδομένων στη μνήμη του υπολογιστή.
- Γνωρίζει σε βάθος ον τρόπο υλοποίησης δομών δεδομένων, όπως και εργαλεία τα οποία χρησιμοποιούνται για την δημιουργία και