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

BibliographyPermalink

  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.

LecturesPermalink

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

LabsPermalink

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 ImplementationsPermalink

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-classPermalink

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