This is the collection of all the codes I practiced for stregthening my data structures. In my opinion, this is more than sufficient for most of the coding interview questions which are related to DS. Find a PDF that contains entire content of this repo with diagrams and explanations wherever required.
Following is the overview of the topics covered in this repo:
Module 1: Arrays
Two major sections covered in this module are array rotations and sorting.
Module 2: Linked Lists
The first section gives an extensive coverage of topics of Singly Linked List. And then the section of Other Linked Lists covers the overview of Circular and Doubly Linked Lists.
Module 3: Stacks
One section on Stacks is there covering it's bare-bones implementation, design questions and applications of stacks.
Module 4: Queues
Similar to Stacks, one section on Queues covers it's bare-bones implementation, design questions and applications of queues.
Module 5: Trees
This module spans across many sections. First section of Introduction to Binary Trees introduces the basic concepts and definitions of Trees. Then BT Traversal and BT Construction Problems provide a sufficient practice of working with trees. A very important concept is then introduced in the section of Least Common Ancestor followed by some Miscellaneous Problems.
We then introduce two important variants of Binary Trees - Binary Search Trees (BSTs) and Heaps.
A small introduction of AVL Trees is also provided at the end.
Module 6: Graphs
Finally, the most important and the biggest module of Data structures - Graphs! Topics covered under this module are - Graph Traversals and Basic Terminology, Cycles in Graph, Minimum Spanning Trees, Shortes Path Algorithms, Concept of Connectivity, Topological Sorting and Flow in Graphs.
After you feel comfortable with Data-Structures, you should definitely go for 'ALGORITHMS' and try 'COMPETITIVE PROGRAMMING' as well.