π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??
Before getting into this repo lets understand the Importance of Problem solving and DSA in coming 10 to 20 years click below video to understand more.
Let's connect on discord for Technical and DSA related Discussion: DisCord
β 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.
Show some Β β€οΈΒ by starring this repository! It will push me to give more percentage of efforts.
- 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
- 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π