Skip to content

amitkumariitmadras/Data-Structures-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Comprehensive list of Data structures and Algorithms categorized by type and usage:


Data Structures

Linear Data Structures

  1. Array
  2. Linked List
    • Singly Linked List
    • Doubly Linked List
    • Circular Linked List
  3. Stack
  4. Queue
    • Simple Queue
    • Circular Queue
    • Priority Queue
    • Deque (Double-Ended Queue)

Non-Linear Data Structures

  1. Tree
    • Binary Tree
    • Binary Search Tree
    • AVL Tree
    • Red-Black Tree
    • B-Tree
    • B+ Tree
    • Segment Tree
    • Fenwick Tree (Binary Indexed Tree)
    • Suffix Tree
    • Trie (Prefix Tree)
    • Quad Tree
  2. Graph
    • Adjacency List Representation
    • Adjacency Matrix Representation
    • Weighted Graph
    • Directed Graph
    • Undirected Graph
    • Directed Acyclic Graph (DAG)
  3. Heap
    • Min Heap
    • Max Heap
    • Fibonacci Heap

Hash-Based Data Structures

  1. Hash Table
    • Chaining
    • Open Addressing (Linear Probing, Quadratic Probing, Double Hashing)
    • Bloom Filter

Specialized Data Structures

  1. Disjoint Set (Union-Find)
  2. Matrix (2D arrays)
  3. Skip List
  4. Suffix Array
  5. Interval Tree
  6. Sparse Table

Algorithms

Sorting Algorithms

  1. Bubble Sort
  2. Selection Sort
  3. Insertion Sort
  4. Merge Sort
  5. Quick Sort
  6. Heap Sort
  7. Counting Sort
  8. Radix Sort
  9. Bucket Sort
  10. Shell Sort
  11. Tim Sort

Search Algorithms

  1. Linear Search
  2. Binary Search
  3. Jump Search
  4. Interpolation Search
  5. Exponential Search

Graph Algorithms

  1. Depth-First Search (DFS)
  2. Breadth-First Search (BFS)
  3. Dijkstra’s Algorithm
  4. Bellman-Ford Algorithm
  5. Floyd-Warshall Algorithm
  6. Kruskal’s Algorithm (Minimum Spanning Tree)
  7. Prim’s Algorithm (Minimum Spanning Tree)
  8. Topological Sorting
  9. A Search Algorithm*
  10. Johnson’s Algorithm
  11. Tarjan’s Algorithm (Strongly Connected Components)
  12. Kosaraju’s Algorithm (Strongly Connected Components)
  13. Ford-Fulkerson Algorithm (Maximum Flow)

Tree Algorithms

  1. Tree Traversals
    • Inorder
    • Preorder
    • Postorder
    • Level Order
  2. Lowest Common Ancestor (LCA)
  3. Segment Tree Construction and Query
  4. Fenwick Tree Updates and Query
  5. Trie Operations (Insert, Search, Delete)

Dynamic Programming Algorithms

  1. Knapsack Problem
  • 0/1 Knapsack
  • Fractional Knapsack
  1. Longest Common Subsequence (LCS)
  2. Longest Increasing Subsequence (LIS)
  3. Matrix Chain Multiplication
  4. Floyd-Warshall Algorithm
  5. Subset Sum Problem
  6. Rod Cutting Problem
  7. Egg Dropping Problem
  8. Coin Change Problem

Divide and Conquer Algorithms

  1. Merge Sort
  2. Quick Sort
  3. Binary Search
  4. Strassen’s Matrix Multiplication

Greedy Algorithms

  1. Activity Selection Problem
  2. Huffman Coding
  3. Kruskal’s Algorithm
  4. Prim’s Algorithm
  5. Dijkstra’s Algorithm

Backtracking Algorithms

  1. N-Queens Problem
  2. Sudoku Solver
  3. Rat in a Maze
  4. Word Search
  5. Hamiltonian Cycle
  6. Knight’s Tour Problem

String Algorithms

  1. KMP Algorithm (Knuth-Morris-Pratt)
  2. Rabin-Karp Algorithm
  3. Z Algorithm
  4. Boyer-Moore Algorithm
  5. Aho-Corasick Algorithm
  6. Suffix Array Construction
  7. Suffix Tree Operations

Mathematical Algorithms

  1. Greatest Common Divisor (GCD)
  2. Least Common Multiple (LCM)
  3. Sieve of Eratosthenes
  4. Prime Factorization
  5. Modular Exponentiation
  6. Euclidean Algorithm
  7. Chinese Remainder Theorem
  8. Fast Fourier Transform (FFT)

Bit Manipulation Algorithms

  1. Bitwise AND/OR/XOR
  2. Counting Set Bits (Hamming Weight)
  3. Bit Masking
  4. Checking Power of Two
  5. Reversing Bits

Number Theory Algorithms

  1. Modular Arithmetic
  2. Miller-Rabin Primality Test
  3. Elliptic Curve Cryptography (ECC)
  4. Discrete Logarithm
  5. Extended Euclidean Algorithm

Miscellaneous Algorithms

  1. Flood Fill Algorithm
  2. Union-Find Algorithm (for Disjoint Sets)
  3. Reservoir Sampling
  4. Fisher-Yates Shuffle
  5. Manacher’s Algorithm (Longest Palindromic Substring)
  6. Sliding Window Technique
  7. Two Pointer Technique

About

DSA's imporant Questions and Concepts Repository

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published