Overview of Data Structures and Algorithms available
masterThis repository provides fundamental implementations and documentation for various computer science concepts in JavaScript. Each implementation includes detailed explanations and external resources.
Data Structures
Includes implementations for:
- Linear structures: Linked List, Queue, Stack.
- Non-linear structures: Hash Table, Heap, Priority Queue, Trie, Tree (Binary Search Tree, AVL Tree, Red-Black Tree), Graph (Directed and Undirected), and Disjoint Set.
Algorithms
Algorithms are categorized by topic and paradigm:
By Topic:
- Math: Factorial, Fibonacci, Primality Test, Euclidean Algorithm (GCD), Least Common Multiple (LCM), Integer Partition.
- Sets: Cartesian Product, Power Set, Permutations, Combinations, Fisher-Yates Shuffle, Longest Common Subsequence (LCS), Longest Increasing Subsequence, Shortest Common Supersequence (SCS), Knapsack Problem, Maximum Subarray.
- Strings: Levenshtein Distance, Hamming Distance, KMP Algorithm, Rabin-Karp Algorithm, Longest Common Substring.
- Search & Sort: Binary Search, Bubble Sort, Selection Sort, Insertion Sort, Heap Sort, Merge Sort, Quick Sort, Shell Sort.
- Trees & Graphs: DFS/BFS (Tree and Graph), Dijkstra, Bellman-Ford, Cycle Detection, Prim's and Kruskal's (MST), Topological Sorting, Articulation Points, Bridges, Eulerian Path/Circuit, Hamiltonian Cycle, Strongly Connected Components, Travelling Salesman, Floyd-Warshall.
- Uncategorized: Hanoi Tower, N-Queens, Knight's Tour.
By Paradigm:
- Brute Force: Maximum Subarray, Travelling Salesman.
- Greedy: Knapsack, Dijkstra, Prim's, Kruskal's.
- Divide and Conquer: Binary Search, Hanoi Tower, Euclidean Algorithm, Permutations/Combinations, Merge Sort, Quick Sort, DFS (Tree/Graph).
- Dynamic Programming: Fibonacci, Levenshtein Distance, LCS, Longest Common Substring, Longest Increasing Subsequence, SCS, Knapsack (0/1), Integer Partition, Maximum Subarray, Bellman-Ford.
- Backtracking: Hamiltonian Cycle, N-Queens, Knight's Tour.
- Branch & Bound