### MA5910 Data Structures & Algorithms

#### Course Details

Preliminaries: Growth of functions, recurrence relation, generating functions, solution of difference equations, Master's theorem (without proof).

Sorting and Order Statistics: Bubblesort, mergesort, heapsort, quicksort, sorting in linear time, median and order statistics.

Elementary Data Structures: Stacks, queues, linked lists, implementing pointers, rooted trees, direct-address tables, hash tables, open addressing, perfect hashing, binary search trees, red-black trees, dynamic programming, optimal binary search trees, greedy algorithms.

Graph Algorithms: Breadth-first search, depth-first search, topological sort, Minimum spanning trees, Krushkal's and Prim's algorithms, shortest path, Bellman-Ford algorithm, Dijkstra's algorithm, Floyd-Warshall algorithm, Johnson's algorithm, Maximum flow, Ford-Fulkerson method, maximum bipartite matching.

#### Course References:

**Text Books:**

T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein, Introduction to Algorithms, 3rd Edn, PHI, New Delhi, 2009.

**Reference Book:**

1. Alfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft, Data Structures and Algorithms, Addison Wesley, 1983.

2. M.A. WeiSS, Data Structures and Algorithm Analysis in CTT, 3rd Edn, Pearson, Addison Wiesley, 2006.

3. A.M. Tenenbaum, Y. Langsam, and M.J. Augenstein, Data Structures using C, PHI, New Delhi, 2009.