/03-Data-Structures

Data Structures

Primary LanguageC++

Data Structures

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.