📚Data Structures
Before dive into this repo you should know why do we need these concepts. What is Role of DSA in your real life??
“ For solving any real-world problem with programming approach we need to follow some steps & strategy. The collection of that steps is Algorithm, whereas a data structure is a way to store and organize data during solving that problem or constructing any software so that it can be used efficiently in terms of time and space, this way Data structure & Algorithms always allow us to write efficient and optimized computer programs.”
-
STL is standard template library, It is most powerful & useful while doing competitive coding questions Read More.
-
Problems on Data structure & Algorithms (Competitive coding) Click Here to get into problems section..
-
NOTE : Click on [:blue_book:] for getting hand written notes on particular topic.
- Recursion
- Array
- String
- LinkedList
- Stack
- Queue
- Tree
- Binary Search Tree
- AVL Trees
- Graph
- Heap
- Sorting Techniques
- Divide & Conquer
- Sliding Window
- Dynamic Programming
- 01 Head Recursion
- 02 Tail Recursion
- 03 Global variable recursion
- 04 Static variable reciursion
- 05 Tree recursion
- 06 Nested recursion
- 07 Sum of n number using recursion
- 08 Sum Of given number using loop
- 09 Power using recursion
- 10 Taylor Series using Static variables
- 11 Taylor Series honers rule
- 12 Taylor Series Iterative
- 13 Indirect Recursion
- 14 Fibbonaci series using loop and recursion
- 15 Fibbonacci using Memoization
- 16 nCr formula
- 17 Tower of Hanoi
- 01 Static and dynamic array
- 02 Increasing size of array in heap
- 03 Creating 2D array & Accessing
- 04 Array ADT1📘
- 05 inserting an element)📘
- 06 Deleting element📘
- 07 Linear search📘
- 08 Improving Linear search📘
- 09 Binary Search Using Recursion📘
- 10 Binary Search using loop📘
- 11 Get Set max min sum avg)📘 && 📘
- 12 Reverse and Shift📘
- 13 IsSorted📘
- 14 Mergeing 2 Array
- 15 InsertSort📘
- 16 Set Operation (Union,Intersec,diff)
- 17 Insertion and Deletion
- 18 Menu Based problem
- 19 Single Missing Element in Sorted Array
- 20 Single Missing Value in a sorted array M2
- 21 Multiple Missing Elements in Sorted Array
- 22 Missing elements in Unsorted Array (HASH TABLE)
- 23 Finding Duplicate in Soorted Array
- 24 Counting Duplicate Elements In Sorted M2
- 25 Counting Duplicate elements using hash table (SA)
- 26 Counting Duplicate elements using hash table (USA)
- 27 Finding Duplicate in Unsoorted Array
- 28 Find a pair with sum k
- 29 Find a pair with sum k in unsorted
- 30 Find a pair with sum k using Hashing
- 31 Finding max & min in single scan
- 01 Length of string
- 02 Upper to Lower
- 03 lower to upper
- 04 Upper to Lower & Lower to upper
- 05 Vowel & Counstant count
- 06 Word Count
- 07 Reverse the string
* 📘 Linkedlist
- 01 Display LL
- 02 Display LL Using Recursion
- 03 Count and sum of LL
- 04 Printing max element
- 05 Searching Element
- 06 Searching Elements using Recursion & Move to 1st
- 07 Insertion in linkedlist
- 08 Insert in sorted
- 09 All in one 1 to 8
- 10 project sll
- 11 Delete from ll.
- 12 Remove duplicate
- 13 Reversing Using Array
- 14 Reversing by Sliding Links
- 15 Reversing using Recursion
- 16 Concatenate linkedlist
- 17 Merge LL
- 18 Liner Singly Linked List in Single Project
- 19 Display Circular LL using Loop & Recursion
- 20 Insert in Circular LL
- 21 Delete from cll from pos
- 22 Delete an element in CLL from pos
- 23 Create,Display,count DLL
- 24 Insert at any pos in dll
- 25 Delete from any pos from DLL
- 26 Reverse DLL
- 27 Middle of Linkedlist
- 28 Polynomial of Linkedlist
- 01 Operation on stack
- 02 Stack using linkedlist
- 03 Parenthesis Balance
- 04 Infix to postfix📘
- 05 infix to postfix considering Parenthesis and Associativity using Stack
- 06 Evaluation of postfix expression
- 01 Queue using array enqueue & dequeue 📘
- 02 C++ Queue using Array
- 03 Circular Queue using Array📘
- 04 C++ Circular Queue
- 05 Queue using Linkedlist📘
- 06 DEQueue using Array
- 07 Queue using two stack📘
- 01 Traversal of tree
- 02 Iterative and recursive traversal of tree
- 03 Traversal of Tree
- 04 Level Order Traversal
- 05 Count and Height of tree
- 06 Recursive Count and height of tree
- 07 Sum of tree
- 08 D1,D2,D0(leaf node) count
- 09 Leaf,D1,D2 node count
- 01 BST Insert Inorder & Search
- 02 BST Insert,Inorder&Search(cpp)
- 03 Insert in BST
- 04 Recursive Insert in BST
- 05 Delete from BST (Height,InPre,InSucc)
- 06 BST Project
- 01 BFS
- 02 DFS
- 03 PrimMinSpanningTreeFunction
- 04 KrushalsMinCostSpanningTreeFunction
- 05 DepthFirstSearchUsingRecursion
- 06 BreadthFirstSearchUsingSTLQueue
- 01 InsertionHeap
- 02 CreateHeapUsingSTLVector
- 03 Insert in Heap
- 04 Delete element from Heap
- 05 Heap sort
- 06 HeapifyFunctionFasterMethodtoCreateHeap
- 01 Bubble Sort
- 02 Insertionsort
- 03 Selection Sort
- 04 Mergesort
- 05 Iterative Mergesort
- 06 Nested recursion
- 07 RecursiveMergeSort
- 08 Count sort
- 09 BinSort Based on LL
- 10 RadixSort Using LL
- 11 Shellsort
📚Algorithms
In software development we have two phases:-
-
Design
-
Implementation
-
For designing any kind of software we should have a blueprint for that, i.e we can not develop any software on hit and trial basis.
-
Algorithm:- Algorithm is step by step procedure do solve any kind of computational problem & It is the core of computer science.
-
There is certain point about algorithm:-
-
Algorithm is written at design time.
-
For writing any effective one should have Proper domain Knowledge.
-
Algorithm is language independent.
-
And it is independent of Hardware & OS.
-
We are doing priori analysis when writing algorithms.
-
Mainly we are considering Time & Space function. Rather than that we are checking for Network Consumption/Data Transfer, Power consumption and Consumption of CPU Register.
-
characteristics of Algorithm :-
-
- Input
-
- Output
-
- Definiteness(Every Statement should be clear and understandable)
-
- Finiteness(Algorithm must terminate at some time)
-
- Effectiveness(Don’t write unnecessary steps)
-
- Independent(It can be implemented in any programming language)
- Merge Sort📘
- Quick Sort
- Binary Search (logn)📘
- Closest Pair of Points | O(nlogn)
- Strassen’s Matrix Multiplication
- Maximul Subarray
- Integer Multiplication
- Karatsuba Algorithm for Fast Mul
- 01 Fibonacci Series
- 02 Knapsack Recursion📘
- 03 Knapsack Memoization📘 - Applications of Knapsack Problem 1. Resourse allocation with financial constraints 2. Construction and Scoring of Heterogenous test 3. Selection of capital investments
- 04 Knapsack Bottom-Up(DP)📘
- 05 Subset sum(Knapsack Variation)📘
- 06 Equal sum partition(subset sum & Knapsack Variation)📘
- 07 Count of Subsets with given Sum(subset sum & Knapsack Variation)📘
- 08 Minimum subset sum difference📘
- 09 Count the number of subset with given difference📘
- 10 Target sum(Leetcode)📘
- 11 Unbounded Knapsack📘
- 12 Rod cutting problem(Unbounded Knapsack)📘
- 13 Coin change problem : maximum no of ways📘
- 14 Coin change problem: Minimum number of coin📘
- 15 Longest Common Subsequence Recursive📘
- 16 Longest Common Subsequence Top down (Memoization)📘
- 17 Longest Common Subsequence Bottom Up(DP)📘
- 18 Longest Common Substring📘
- 19 Print Longest Common Subsequence📘
- 20 Shortest Common Supersequence📘
- 21 Minimum insertion & deletion to convert a to b📘
- 22 Longest Palindromic Subsequence📘
- 23 Minimum number of deletions to make a string palindrome📘
- 24 Print Shortest Common Supersequence📘
- 25 Longest repeating subsequence📘
- 26 Sequence pattern matching📘
- 27 Minimum Number of insertion to make a string palindrome📘
- 28 Matrix Chain Multiplication Recursive📘
- 29 Matrix Chain Multiplication Top Down (Memoization)📘
- 30 Palindrome Partitioning Recursive📘
- 31 Palindrome Partitioning Memoization📘
- 32 Palindrome Partitioning Memoized optimization📘
- 33 Evaluate Expression to true Recursive📘
- 34 Evaluate expression to true memoization using map📘
- 35 Evaluate expression to true memoization using 3d array📘
- 36 Scramble string recursive📘
- 37 Scramble string Top Down📘
- 38 Egg dropping problem recursive📘
- 39 Egg dropping problem Top Down(memoization)📘
- 40 Egg dropping problem memoization optimization📘
- 41 Dynamic programming on trees Syntax📘
- 42 Diameter of binary tree📘
- 43 Max path sum from any node to any📘
- 44 Max path sum from leaf to leaf📘