Start-DSA

LANGUAGE SELECTION

Pick any programming language of your choice. If you want to build DSA from scratch, I'll suggest C/C++.

C++ Tutorial for Beginners

LEARN THE BASICS

For a fantastic building, you need an extraordinary basement. Get a good understanding of pointers, structures, classes, dynamic memory allocation, and recursion. Learn how to find time and space complexities of algorithms and learn about the notations.

ARRAYS (Data Structures)

Learn about what is an array, how do they work, how data is stored in an array, how memory is managed in an array, and all other things. After knowing the basics of arrays, learn about the operations that we can perform on arrays like, insertion, deletion, replacing, searching, etc.

Introduction to Arrays in C++

Two Dimensional Arrays | 2D Arrays

Searching algorithms.

Learn basic searching algorithms such as, Linear search and Binary search, with their time complexities and use cases. There are many searching algorithms but learning these first will give a clear understanding of others.

Searching in Arrays

Sorting algorithms.

Learn basic sorting algorithms that follow a NORMAL APPROACH such as selection sort, bubble sort, etc.

Selection Sort

Bubble Sort

Insertion Sort

TASK-1

  1. Concatenation of Array
  2. Running Sum of 1d Array
  3. Richest Customer Wealth
  4. Square Root
  5. Guess Number Higher or Lower
  6. Merge Sorted Array

After Successful submission on Leetcode, copy the code in your text editor, Save it with name task1_[problemNumber].cpp for eg. task1_1.cpp ,put it in a folder with [UserName]_task1 for eg. anuragbhardwaj13_task1

DIVIDE AND CONQUER (Algorithms)

Learn about Divide and Conquer methodology. Sorting algorithms such as merge sort, quick sort, and others follow this methodology.

Merge Sort

Quick Sort

LINKED LISTS (Data Structures)

Learn about what is a linked list, how do they work, how data is stored, how memory is managed, and all other things. After knowing the basics of linked lists, learn about the operations that we can perform on them like insertion, deletion, searching, traversing, reversing, etc. Learn about their applications. Also know the different types of linked lists.

Introduction to Linked List

Deletion in Linked List

TASK-2

  1. Reverse a Linked List
  2. Delete Node in a Linked List
  3. Middle of the Linked List
  4. Merge Sort

After Successful submission on Leetcode, copy the code in your text editor, Save it with name task2_[problemNumber].cpp for eg. task2_1.cpp ,put it in a folder with [UserName]_task2 for eg. anuragbhardwaj13_task2

STACKS AND QUEUES (DS)

Follow the same steps as mentioned for linked lists.

Stack

Introduction to Prefix, Infix and Postfix

Introduction to Queue Data Structure

Queue using Stack

Stack using Queue

Task-3

  1. Implement Queue using array
  2. Queue using two Stacks
  3. Valid Parentheses
  4. Infix to Postfix
  5. First Unique Character in a String

After Successful submission on Leetcode, copy the code in your text editor, Save it with name task3_[problemNumber].cpp for eg. task3_1.cpp ,put it in a folder with [UserName]_task3 for eg. anuragbhardwaj13_task3

TREES AND GRAPHS (Data Structures)

Now we are coming to the most important part. Learn about binary trees, binary search trees, traversal methods, the height of a tree, and all other operations. Learn about the Depth-first search and Breadth-first search.

The same goes for Graphs. A tree, in fact, is a special type of graph.

Almost all algorithmic concepts that come under trees will definitely come under graphs.

Do an IN-DEPTH analysis for understanding these data structures.

Introduction to Graph | Types of Graph

Graph Representation in C++

Binary Tree Introduction

Binary Tree Traversals| Preorder, Inorder, Postorder Traversal

Binary Search Trees | Introduction & Build

Search and Delete in Binary Search Tree

Construct Binary Search Tree from Preorder

TASK-4

  1. Merge Two Binary Trees
  2. Search in a Binary Search Tree
  3. Find Center of Star Graph
  4. Count the paths
  5. Minimum Swaps to Sort

After Successful submission on Leetcode, copy the code in your text editor, Save it with name task4_[problemNumber].cpp for eg. task4_1.cpp ,put it in a folder with [UserName]_task4 for eg. anuragbhardwaj13_task4