Skip to content

Data Structures and Algorithms (Laboratory exercises in C++)

Notifications You must be signed in to change notification settings

giannisCKS/ceteiep_dsa

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Εργαστήριο (C++) - ΤΕΙ Ηπείρου - Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εργαστήριο 1 - Βασικές έννοιες στη C και στη C++

Δείκτες, δέσμευση-αποδέσμευση μνήμης, πίνακες, πέρασμα παραμέτρων με τιμή και με αναφορά σε συναρτήσεις, δομές - εγγραφές , κλάσεις - αντικείμενα, ανάγνωση - εγγραφή αρχείων.

Εργαστήριο 2 - Εισαγωγή στα templates και στην STL (Standard Template Library)

Templates, STL containers, STL iterators, STL αλγόριθμοι, lambdas.

Εργαστήριο 3 - Αλγόριθμοι αναζήτησης και ταξινόμησης

Θεωρητική μελέτη αλγορίθμων (ασυμπτωτική πολυπλοκότητα), μέτρηση χρόνου εκτέλεσης κώδικα, αλγόριθμοι ταξινόμησης (ταξινόμηση με εισαγωγή, ταξινόμηση με συγχώνευση, γρήγορη ταξινόμηση, ταξινόμηση κατάταξης), σταθερή ταξινόμηση, αλγόριθμοι αναζήτησης (σειριακή αναζήτηση, δυαδική αναζήτηση, αναζήτηση με παρεμβολή).

Εργαστήριο 4 - Γραμμικές λίστες

Στατικές λίστες (υλοποίηση στατικής γραμμικής λίστας), συνδεδεμένες λίστες (υλοποίηση απλά συνδεδεμένης λίστας), λίστες της STL (std::array, std::bitset, std::forward_list, std::list, std::vector, std::deque).

Εργαστήριο 5 - Στοίβες και ουρές

Στοίβα (υλοποίηση στοίβας στη C++), Ουρά (υλοποίηση ουράς στη C++), στοίβες και ουρές στην STL (οι adaptors std::stack και std::queue).

Εργαστήριο 6 - Σωροί

Σωροί ελαχίστων (MINHEAPS) και σωροί μεγίστων (MAXHEAPS), η ταξινόμηση heapsort, σωροί μεγίστων και σωροί ελαχίστων στην STL (std::priority_queue).

Εργαστήριο 7 - Κατακερματισμός

Συναρτήσεις κατακερματισμού (hash functions), κατακερματισμός με ανοικτή διευθυνσιοδότηση (γραμμική ανίχνευση), κατακερματισμός με αλυσίδες, δομές κατακερματισμού στην STL (std::unordered_map, std::unordered_set), η std::hash.

Εργαστήριο 8 - Γραφήματα

Αναπαράσταση γραφημάτων (πίνακες γειτνίασης, λίστες γειτνίασης), ανάγνωση δεδομένων γραφήματος από αρχείο, αλγόριθμος του Dijkstra για την εύρεση των συντομότερων διαδρομών από μια κορυφή προς όλες τις άλλες κορυφές του γραφήματος.

Εργαστήριο 9 - Δένδρα

Δυαδικά δένδρα, τρόποι διάσχισης δένδρων (προ-διατακτική, ένδο-διατακτική, μέτα-διατακτική, κατά πλάτος), ισοζυγισμένα δυαδικά δένδρα. Δυαδικά δένδρα αναζήτησης.

Παραρτήματα

Α. Εγκατάσταση περιβάλλοντος ανάπτυξης προγραμμάτων C++

Εγκατάσταση gcc σε Windows. Ρύθμιση Visual Studio Code για ανάπτυξη και αποσφαλμάτωση προγραμμάτων σε C++. Online C++ compilers.

Β. Eισαγωγή στο TDD (Test Driven Development)

Test Driven Development στη C++ με τη βιβλιοθήκη catch

About

Data Structures and Algorithms (Laboratory exercises in C++)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 68.5%
  • TeX 30.8%
  • Other 0.7%