Data Structures

The goal of this lecture is to present the basic principles of data structures design and analysis.


  1. Mehlhorn, Kurt, and Peter Sanders. Algorithms and data structures: The basic toolbox. Springer Science & Business Media, 2008.
  2. Robert Sedgewick. Algorithms in C: Fundamentals, Data Structures, Sorting, Searching. 3/e, Addison-Wesley Professional, 1997.
  3. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms. MIT press.


Lecture slides are available both in English and in Greek.

  1. Fundamentals el
  2. Recursion and Trees el
  3. Priority Queues en, el
  4. Search Trees en, el
  5. Hashing el
  6. Graphs en, el
  7. Sorting el
  8. Strings el

Example Implementations

Lecture slides with example implementations can be found below.

  1. Stack Implementation in C en, el
  2. Queue Implementation in C en, el
  3. Binary Heap Implementation in C en, el
  4. Vector Implementation in C en, el


Labs can be found in YouTube (only in Greek).

  1. Lab1 - Stack implementation in C video
  2. Lab2 - Queue implementation in C video
  3. Lab3 - Binary Heap implementation in C video
  4. Lab4 - Vector implementation in C video
  5. Lab5 - Binary Search Tree implementation in C
  6. Lab6 - Hashtable implementation in C video

Check out the following playlist.


All announcements and material can also be found at