Pre-requisites : Nil

Syllabus :
Assignments are designed to provide hands-on experience in programming the following data structures and algorithms using the C programming language. Elementary data structures: arrays, matrices, linked lists, stacks, queues, binary trees, tree traversals; Balanced binary search trees: red-black trees, B-trees; Priority queues: binary heap; Sorting and searching: bubble, insertion, merge, quick sort, heap sort, binary search; Hashing; Strings: tries, suffix arrays, suffix trees; Sets: linked-list, disjoint-set forest; Graphs: adjacency list, adjacency matrix, depth first search, breadth first search.

Texts :
1. Weiss, M. A., Data Structures and Algorithm Analysis in C, Pearson, 2002. 2. Cormen, T. H., Leiserson, C. E., Rivest, R. L. and Stein, C., Introduction to Algorithms, MIT Press, 2009.

References :
1. Horowitz, E. and Sahni, S., Fundamentals of Data Structures in C, University Press, 2008. 2. Sedgewick, R., Algorithms in C Parts 1-4: Fundamentals, Data Structures, Sorting, Searching, Pearson, 1997. 3. Sedgewick, R., Algorithms in C Part 5: Graph Algorithms, Pearson, 2001. 4. Goodrich, M. T. and Tamassia, R., Data Structures and Algorithms in C++, Wiley India, 2007. 5. Kernighan, B. W. and Ritchie, D. M., The C Programming Language, Prentice Hall India, 1990.