# Data Structures (MAE681)

### General

School School of Science Department of Mathematics Undergraduate MAE681 6 Data Structures Lectures and laboratory exercises (Weekly Teaching Hours: 3, Credits: 6) Special Background - Greek Yes See eCourse, the Learning Management System maintained by the University of Ioannina.

### Learning Outcomes

Learning outcomes The course is an introduction to basic data structures such as strings, arrays, lists, stacks, queues, trees, graphs. It studies properties and implementation issues as well as basic properties on the data structures and their complexity. It also examines basic applications of the above data structures. The main purpose is the design and use of appropriate data structures for storing and retrieving the data of a problem in order for a most efficient processing during the problem solving process. After completing the course the student: Has an understanding of basic data structures and the different ways they can be implemented using a programming language. Can choose appropriate data structures for efficiently storing the data of a problem and their use by an algorithms for solving the problem. Working independently Problem data analysis Can use data structures for solving problems in other scientific areas or in the workplace.

### Syllabus

• Elements Of Analysis Of Algorithms
• Abstract Data Types
• Strings
• Arrays
• Algorithms for Searching, Sorting, Selection
• Lists (Single Linked Lists, Doubly Linked Lists, Circular Lists, Generalised Lists)
• Stacks
• Queues, DeQueues, Priority Queues
• Trees (General Trees, Binary Trees, Binary Search Trees, Threaded Trees)
• Heaps
• AVL-Trees, 2-3 Trees, 2-3-4 Trees, B Trees
• Directed Graphs, Undirected Graphs
• Set Manipulation
• Hashing
• Dynamic Memory Management

### Teaching and Learning Methods - Evaluation

Delivery

Face to face

Use of Information and Communications Technology Yes
Teaching Methods
Lectures 39
Self study 78
Exercises 33
Course total 150
Student Performance Evaluation

Written final exam (70%) comprised of:

• questions about the theory of data structures
• Questions crisis in the form of exercises that require the use of data structures
• Exercises testing the understanding of the implementation issues and use of data structures

Laboratory exercises / midterm (30%)

### Attached Bibliography

See the official Eudoxus site or the local repository of Eudoxus lists per academic year, which is maintained by the Department of Mathematics. Books and other resources, not provided by Eudoxus:

• Data structures, algorithms and applications using c ++, Sahnii Sartaj, Publicer A. Tziola (Greek translation)
• Algorithms in C ++, parts 1-4: fundamental concepts, data structures, sorting, searching, Robert Sedgewick, Prentice Hall (Greek translation)
• Algorithms in C, parts 1-4: fundamental concepts, data structures, sorting, searching, Robert Sedgewick, Prentice Hall (Greek translation)
• Data Structures with C, Nicholas Misirlis (Greek)
• Data Structures, Bozanis Panagiotis, Publicer A. Tziola (Greek)
• Michael T. Goodrich, Roberto Tamassia, and David M. Mount, Data Structures and Algorithms in C ++, John Wiley & Sons
• Michael Goodrich, Roberto Tamassia, Data Structures and Algorithms in Java, Publicer DIAYLOS
• Cormen, Leiserson and Rivest, Introduction to Algorithms, MIT Press, 1990. (there is also a translation from the University of Crete)
• Mark Allen Weiss, Data Structures & Algorithm Analysis in Java, Addison-Wesley
• Clifford A. Shaffer, Data Structures and Algorithm Analysis, ebook, http://people.cs.vt.edu/shaffer/Book/
• http://opendatastructures.org/