Instructor: Dr. Naveen Garg, Department of Computer Science and Engineering, IIT Delhi.
The objective of the course is to familiarize students with basic data structures and their use in fundamental algorithms. Topics covered include an introduction to object-oriented programming through stacks, queues and linked lists; Dictionaries: skip-lists, hashing, analysis of collision resolution techniques; trees, traversals, binary search trees, 2-4 trees and red-black trees; Tries and pattern matching; priority queues and binary heaps; sorting: merge, quick, radix, selection, heap; graphs, breadth first search and connected components; depth first search in directed and undirected graphs and strongly connected components; spanning trees: Prim's and Kruskal's algorithm, union-find data structure; Dijkstra's algorithm for shortest paths, shortest path tree; directed acyclic graphs: topological sort and longest path.