Course Code: CS513
Course Name: Data Structures Lab
Prerequisites: 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.