Pre-requisites : Nil
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.
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.
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.