DSA Beginner to Advanced Roadmap by Sandeep Jain

A detailed roadmap designed for aspiring programmers looking to kickstart their Data Structures and Algorithms journey, created, curated and organised by the CEO himself.

Overview

Chapters

Reviews

FAQ’s

25

Chapters

3

Quizzes

50+

Articles

500

Problems

Discover a smoother learning journey through our effortless roadmap

Start your journey>

Chapters

Tree

37 articles

Introduction to Tree Data Structure

Tree Traversal Techniques - Data Structure and Algorithm Tutorials

Types of Trees in Data Structures

Level Order Traversal (Breadth First Search or BFS) of Binary Tree

Level order traversal in spiral form

Find the Maximum Depth or Height of given Binary Tree

Program to Determine if given Two Trees are Identical or not

Convert a Binary Tree into its Mirror Tree (Invert Binary Tree)

Symmetric Tree (Mirror Image of itself)

How to determine if a binary tree is height-balanced?

Largest value in each level of Binary Tree

ZigZag Tree Traversal

Print Right View of a Binary Tree

Print Nodes in Top View of Binary Tree

Bottom View of a Binary Tree using Recursion

Diameter of a Binary Tree in O(n) [A new method]

Vertical order traversal of Binary Tree using Map

Construct Tree from given Inorder and Preorder traversals

Convert Binary Tree to Doubly Linked List by keeping track of visited node

Construct BST from given preorder traversal | Set 1

Find distance between two nodes of a Binary Tree

Find the maximum sum leaf to root path in a Binary Tree

Difference between sums of odd level and even level nodes of a Binary Tree

Maximum sum of nodes in Binary tree such that no two are adjacent

Print Ancestors of a given node in Binary Tree

Lowest Common Ancestor in a Binary Tree

Check if a given Binary Tree is Sum Tree

Print Left View of a Binary Tree

Maximum Path Sum in a Binary Tree

Boundary Traversal of binary tree

Print all nodes at distance k from a given node

Serialize and Deserialize a Binary Tree

Count number of nodes in a complete Binary Tree

Find the maximum path sum between two leaves of a binary tree

Count all k-sum paths in a Binary Tree

Burn the binary tree starting from the target node

Clone a Binary Tree with Random Pointers

Binary Search Tree

33 articles

Introduction to Binary Search Tree - Data Structure and Algorithm Tutorials

Searching in Binary Search Tree (BST)

Deletion in Binary Search Tree (BST)

Self-Balancing Binary Search Trees

AVL Tree Data Structure

Introduction to Red-Black Tree

Iterative searching in Binary Search Tree

A program to check if a Binary Tree is BST or not

Find the node with minimum value in a Binary Search Tree

Check if an array represents Inorder of Binary Search tree or not

Check for Identical BSTs without building the trees

Second largest element in BST

Check if two BSTs contain same set of elements

Construct BST from given preorder traversal | Set 1

Transform a BST to greater sum tree

BST to a Tree with sum of all smaller keys

Lowest Common Ancestor in a Binary Search Tree.

Find k-th smallest element in BST (Order Statistics in BST)

K'th Largest element in BST using constant extra space

Largest number in BST which is less than or equal to N

Shortest distance between two nodes in BST

Inorder predecessor and successor for a given key in BST

Find a pair with given sum in BST

Maximum element between two nodes of BST

Find the largest BST subtree in a given Binary Tree | Set 3

Two nodes of a BST are swapped, correct the BST

How to handle duplicates in Binary Search Tree?

Construct all possible BSTs for keys 1 to N

Merge two BSTs with limited extra space

K'th Largest Element in BST when modification to BST is not allowed

Maximum Unique Element in every subarray of size K

Inversion count in Array Using Self-Balancing BST

Merge Two Balanced Binary Search Trees

Graph

33 articles

Introduction to Graph Data Structure

Graph and its representations

Breadth First Search or BFS for a Graph

Depth First Search or DFS for a Graph

Print Adjacency List for a Directed Graph

Search a Word in a 2D Grid of characters (Word Search)

Boggle (Find all possible words in a board of characters) | Set 1

Word Ladder (Length of shortest chain to reach a target word)

Flood fill Algorithm - how to implement fill() in paint?

Given a matrix of ‘O’ and ‘X’, replace 'O' with 'X' if surrounded by 'X'

Minimum time required to rotten all oranges

Minimum number of swaps required to sort an array

Minimum steps to reach target by a Knight | Set 1

Count all possible Paths between two Vertices

Find whether there is path between two cells in matrix

Kahn's algorithm for Topological Sorting

Check if it is possible to finish all task from given dependencies (Course Schedule I)

Find the ordering of task from given dependencies (Course Schedule II)

How to find Shortest Paths from Source to all Vertices using Dijkstra's Algorithm

Floyd Warshall Algorithm

Find number of closed islands in given Matrix

Minimum Cost Path with Left, Right, Bottom and Up moves allowed

Strongly Connected Components

Tarjan's Algorithm to find Strongly Connected Components

Hamiltonian Cycle

Bridges in a graph

Articulation Points (or Cut Vertices) in a Graph

Alien Dictionary

Print all possible shortest chains to reach a target word

Shortest path by removing K walls

Shortest Path in Directed Acyclic Graph

Find minimum weight cycle in an undirected graph

Detect cycle in an undirected graph

About DSA Roadmap for Beginner to Advanced

An extensive interview-centric roadmap designed by the CEO to help you ace your DSA preparations. We will help you enhance your conceptual knowledge about DSA and improve your problem-solving and coding skills. The main focus of this DSA Roadmap will be to help you get started and become a Pro in Data Structures and Algorithms, with additional benefit to prepare for coding interviews of product-based companies like Microsoft, Uber, Amazon, and many more!

Why take this DSA Roadmap for Beginners to Advanced by Sandeep Jain?

With a passion for teaching, our CEO has taken countless sessions and has provide proven tailored guidance to all the aspiring coders over the years. Launch a successful tech career with his structured learning methods, and gain his:

  1. Industry Expertise
  2. Extensive Teaching Experience
  3. Student Friendly Approach

Why Data Structures and Algorithms Are Important to Learn?

Data structures and algorithms play a major role in implementing software and in the hiring process as well. In our daily life, we always go with the choice which can complete the task in a short amount of time and with efficiency, using fewer resources. The same happens with these companies. The problem faced by these companies is much harder and on a much larger scale. Software developers also have to make the right decisions when it comes to solving the problems of these companies. Knowledge of Data Structures and Algorithms goes a long way in solving these problems efficiently and the interviewers are more interested in seeing how candidates use these tools to solve a problem.

If you want to know more about Why Data Structures and Algorithms, then you must opt this DSA Roadmap for Beginners to Advanced by Mr. Sandeep Jain (CEO & Founder, GeeksforGeeks).

Reviews

Abhishek sirohi


The roadmap provided here is a very good start to understanding the basics and covers all types of DSA concepts. I am completely satisfied with this roadmap.

Ayan Prakash


There is a clear explanation of all topics covered in this roadmap, and the practice problems that are provided are very helpful to help implement the concepts learned. Kudos to GeeksforGeeks!!!

Nupur Bisht


There is no doubt that GeeksforGeeks has covered all the important topics in the most effective way. As a result of this roadmap, I am placed in very good company.

Tanisha Singh


In my opinion, the roadmap of GFG is very well structured. It's awesome how they arranged the readings. I found it to be very helpful.

FAQ's

How can I start this course?

You just need to click on the button that says START YOUR JOURNEY, and that's it. You will be taken to your first chapter.

Is this a language-specific course?

No. Majority topics in the course include implementations in popular programming languages like C, C++, Java, Python, C#, and Javascript.

Does the course include programming questions?

Yes, the course focuses on DS & Algo with a mix of theoretical topics and programming questions.

Can I learn DSA live?

Yes, we do have LIVE batched for DSA. You may call us on our toll-free number: +91-7838223507 or Drop us an email at courses@geeksforgeeks.org for any queries.