This repository is made for the people who are in intermediate phase of their learning journeys. Starting from basic data structures, we'll implement advanced Data Structures. I hope the journey will be equally rewarding to you as it was to me.
The whole syllabus is divided into weeks. Every week has an assignment and solutions. The goal is to Implement the data structures and related algorithms given below in a high level programming language.
Overview of various linear and non-linear data structures.
Introduction to asymptotic complexity, Complexity of recursive algorithms, Amortized complexity, Complexity analysis of various sorting and searching techniques, Sorting in linear time.
AVL Trees, Red-Black Trees, Splay Trees, B-trees, B+ Trees, Fibonacci heaps, Data Structures for Disjoint Sets, Augmented Data Structures, Self-Adjusting Data Structures, Temporal data structures, Succinct data structures, Dictionaries and cuckoo hashing.
Representation, Type of graphs,Paths and circuits:, Euler graphs, Hamiltonian paths and circuits, Cut-sets, Connectivity and separability, Planar graphs, Isomorphism, Graph colouring, Covering and partitioning, Depth- and breadth-first traversals, Minimum spanning tree: Prim’s and Kruskal’s algorithms, Shortest-path Algorithms: Dijkstra’s and Floyd’s algorithm, Topological sort, Max flow: Ford-Fulkerson algorithm, Max flow-min cut.
- T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms,The MIT Press.
- Y. Langsam, M. J. Augenstein, and A. O. Tenenbaum, Data Structures Using C and C++, Pearson Education India.
- Peter Brass, Advanced Data Structures, Cambridge University Press.
- J. Kleinberg and E. Tardos, Algorithm Design, Pearson Education India.
- E. Horowitz, S Sahni, & S. Rajasekaran, Computer Algorithms, Computer Science Press.