ΥΠ11 - Data structures
Information
Code : ΥΠ11
Type : Obligatory
Semester : 3
ECTS credits: 6
Course URL: https://eclass.hua.gr/courses/DIT141/
Expected Outcomes
The objective of this course is to teach students how to structure data in order to support efficient solution of basic algorithmic problems and to learn the basic data structures toolbox.
Students will learn:
Basic as well as advanced data structures.
Algorithms for searching and sorting.
Designing basic algorithms as well as measuring their performance.
Implementing data structures using the C programming language.
Content
1st week lecture: Introduction. Measuring performance.
2nd week lecture: Basic Data Structures: Stack, Queue, List
3rd week lecture: Implementing Stack and List using C
4th week lecture: Recursion and Trees. Huffman Encoding
5th week lecture: Graphs Graph Traversal
6th week lecture: Priority Queues
7th week lecture: Search Trees. Dictionaries.
8th week lecture: Balanced Search Trees. AVL Trees.
9th week lecture: 2-3-4 Search Trees. B-Trees.
10th week lecture: Searching and Sorting Algorithms I
11th week lecture: Searching and Sorting Algorithms II
12th week lecture: Hashing
13th week lecture: Data Structures for Strings. Tries. Suffix Trees. Suffix Arrays
Evaluation Means
Bibliοgraphy
- Robert Sedgewick, Algorithms in C: Fundamentals, Data Structures, Sorting, Searching. Addison-Wesley Professional, 3rd Edition, 1997.
- Robert Sedgewick, Algorithms in Java: Fundamentals, Data Structures, Sorting, Searching. Addison-Wesley Professional, 3rd Edition, 2002.
- Kurt Mehlhorn and Peter Sanders. Algorithms and Data Structures - The basic toolbox. Springer-Verlag, 2008.
- Cormen, Leiserson, Rivest and Stein. Introduction to Algorithms. Third Edition. MIT Press. 2009.