Προγραμματιστικές Τεχνικές


Περιγραφή

Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό και τις δομές δεδομένων με
τη γλώσσα προγραμματισμού C++. Κλάσεις και αντικείμενα, πεδία και μέθοδοι,
κατασκευαστές και καταστροφείς, κληρονομικότητα, κανόνες προσπέλασης,
επισκίαση μεθόδων, πολυμορφισμός, εικονικές μέθοδοι, υπερφόρτωση τελεστών,
υπερφόρτωση συναρτήσεων και μεθόδων, function και class templates,
εξαιρέσεις. Αφηρημένοι τύποι δεδομένων, ιεραρχίες κλάσεων, σχεδιαστικά
πρότυπα. Η βιβλιοθήκη STL, περιέκτες (containers) και επαναλήπτες
(iterators). Σχεδίαση και υλοποίηση δομών δεδομένων. Πίνακες ως αφηρημένοι
τύποι δεδομένων. Συνδεδεμένες λίστες: απλά και διπλά συνδεδεμένες λίστες,
στοίβες, ουρές, κυκλικές λίστες, ταξινομημένες λίστες. Ουρές
προτεραιότητας: σωροί, δυαδικοί σωροί, ταξινόμηση με σωρό. Δένδρα:
αναπαράσταση και διάσχιση, δυαδικά δένδρα, δυαδικά δένδρα αναζήτησης,
ισοζυγισμένα δένδρα, δένδρα AVL, red-black trees, splay trees, δένδρα
αναζήτησης m-οδεύσεων, Β-δένδρα. Γράφοι: αναπαράσταση και διάσχιση (κατά
βάθος, κατά πλάτος), εντοπισμός κύκλων, μονοπάτια και κύκλοι Euler,
τοπολογική ταξινόμηση, διαχείριση συνεκτικών συνιστωσών, union-find.
Κατακερματισμός: συναρτήσεις και πίνακες κατακερματισμού, ανοιχτή και
κλειστή διευθυνσιοδότηση.
Εργαστήριο: Μια σειρά προβλημάτων που θα λυθούν σε C++.

Κωδικός MS Teams: 1t8budn