Review of elementary data types and structures in C. The Array data type and the importance of Random Access.
Searching an array: linear and Binary search. Sorting: Merge, Sort, and analysis
Review of Pointers in C. The Linked list ADT.
Searching a linked list, inserting and deleting from a linked list. Application: representing a univariate polynomial, and adding two univariate polynomials
List manipulation algorithms: reversal of a list, use of recursion to reverse/search. Doubly linked lists, circular linked lists
Stack and Queue ADT, comparison of implementation using arrays and linked lists
Tree ADT representation, traversal, and application of binary trees in Huffman coding.
Introduction to expression trees: Recursive traversal depth, height, and number of nodes. Post/pre/infix notation.
Binary search trees search, insertion and deletion
Balanced binary search trees
Heap ADT implementation and Heapsort, in-place sorting.
Heaps for maintaining interval trees.
Representations or relations using matrices. The Graph ADT and applications.
Transitive closure, Flyod Warshall's algorithm and application connectivity and spanning trees.
Adj. List representation of a Graph. Breadth First. Search traversal and identification of shortest paths.
Depth First Search recursive specification and application to finding articulation points
Indian Institute of Technology Madras via SRM Institute of Science and Technology, ChennaiMar Baselios College of Engineering and Technology, ThiruvananthapuramPSG College of Technology, CoimbatoreSwayamNPTEL