# College of Science

## Data Structures

 Course Code C0159 Th 4 Pr 4 CrHrs 3

#### Lecturer Dilovan Asaad Majeed Lecturer

The course covers analysis and design of fundamental data structures and engages learners to use data structures as tools to algorithmically design efficient computer programs that will cope with the complexity of actual applications.

The course focuses on basic and essential topics in data structure Overview of implementation strategies of many data structures and their representation, insertion & deletion and other operation on many data structures, graph, traverse graph, Dijkstra algorithm, tree, binary search tree, traverse tree, searching and sorting methods, analyze the algorithms in best, average, and worst case.

Upon completion of the course, the students are expected to:

1. Student will be able to choose appropriate data structure as applied to specified problem definition.
2. Student will be able to handle operations like searching, insertion, deletion, traversing mechanism etc. on various data structures.
3. Students will be able to use linear and non-linear data structures like stacks, queues, linked list.
4. Use the techniques of algorithm analysis.
5. Write recursive methods.
6. Master the implementation of linked data structures such as linked lists, binary trees, graphs.
7. Sort data using different algorithms such as quicksort, merge sort and radix sort …etc.

Find the shortest path between any two nodes.

 Distribution of Marks Final Mark Final Exam Second Term Mid-Year First Term 100 Prac. Theor. Prac. Theor. Prac. Theor. Prac. Theor. 20 30 5 5 10 20 5 5
 References Clifford A. Shaffer," A practical introduction to data Structures and Algorithm Analysis", 3rd edition ,2011 Sandeep San,” Algorithm Analysis and Design”, Indian Institute Technology, Delhi, Nov 2013 Hari Mohan pandey ,"Data Structure and Algorithm" ,New Delhi, 2009
 Principle Concepts, Data Structures, Classification of Data Structures Arrays & their representation Stacks: Implementation strategies for stacks Applications of stack, Postfix, Prefix, and Infix Notation Recursion Queues: Implementation strategies for queues Types of queues: linear queue, Circular queue, and Double queue(de-queue) Linked Lists, Types of Linked lists: Simple, Circular and Double linked list, Operations on Linked lists Graphs: Implementation strategies for graphs, Mid-Term Examinations – First Semester Types of Graphs Graph Traversal, Shortest path algorithms: Dijkstra algorithm Trees: Implementation strategies for Tree Binary search tree, Operations on tree Traversing tree :( in order, preorder and post order traversal)