TNDE11 Data Structures and Algorithms, 6 ECTS-points
/Datastrukturer och algoritmer/

Advancement level:
B

Aim:
The aim of this course is to present fundamental abstract data types, and to describe how they can be implemented by various data structures and algorithms. The course should also give a knowledge of various methods for searching and sorting, and give an introduction to design and analysis of algorithms. In addition, the course should give a deeper knowledge of and improved skills in programming in an object-oriented programming language, C++.

Prerequisites:
TNDE50 Introduction to Programming.

Course organization:
Lectures, lessons, and laboratory work.

Course content:
C++ without classes. Abstract data types and classes. Constructors, destructors, friends, and operators. Inheritance, polymorphism, and dynamic binding. Templates. Exceptions. Algorithm analysis, complexity measures, and order notation. Lists, stacks, and queues. Tree structures and tree traversals. Binary search trees, AVL trees, and 2-3 trees. Hash tables. Binary heaps. Sorting and selection. Simple sorting algorithms. Mergesort, Heapsort, and Quicksort.

Course literature:
Data Structures and Algorithm Analysis in C++, M. A. Weiss, Addison-Wesley (2e, 1999). C++ direkt, J. Skansholm, Studentlitteratur (1996).

TEN1A written exam, 3 p.
LAB1An obligatory laboratory course, 1 p.
Course language is Swedish..