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

Bibliography

  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.

Lectures

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

Lecture videos are available in Greek.

  1. Introduction video, video
  2. Recursion and Trees video, video
  3. Priority Queues video
  4. Search Trees video, video, video
  5. Hashing video, video
  6. Graphs video, video
  7. Sorting video, video

Labs

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.

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

e-class

All announcements and material can also be found at http://eclass.hua.gr/courses/DIT141.