Data Structure & Algorithm implemented in Java
Mind Map: https://www.processon.com/view/link/5f9193b81e085307a09e598b
- Linked List
- Stack
- Array Stack
- Linked Stack
- Queue
- Array Queue
- Circular Queue
- Linked Queue
- Heap
- Max Heap
- Min Heap
- String (pattern matching)
- BF
- RK
- BM
- KMP
- Skip List
- Tree
- Binary Search Tree (BST)
- Binary Indexed Tree (BIT)
- AVL Tree
- Segment Tree
- Union Find
- Trie
- AC Automaton
- Consistent Hash
- Bloom Filter
- Graph
- Depth First Search (DFS)
- Breadth First Search (BFS)
- Unweighted Graph Algorithm
- Bipartite (DFS, Max Flow)
- Cycle Detection (Topological Sort)
- Bridge and Articulation Point
- Hamilton Path and Loop
- Euler Path and Loop
- Backtracking
- Fleury
- Hierholzer
- Strongly Connected Component
- Kosaraju
- Matching Problem
- Max Flow
- Hungarian
- Topological Sort
- Weighted Graph Algorithm
- The Shortest Path
- Dijkstra
- Moore-Bellman-Ford
- Floyd
- Search Path
- A*
- Minimum Spanning Tree (MST)
- Kruskal
- Prim
- Fredman-Tarjan
- Chazelle
- Max Flow
- Edmonds-Karp
- Dinic
- MPM
- The Shortest Path
- other problems: Connected Component, Single Source Path, ...
- Design
- LRU Cache
- LFU Cache
- Sorting
- Bubble Sort
- Selection Sort
- Insertion Sort
- Shell Sort
- Cocktail Shaker Sort
- Quick Sort
- Heap Sort
- Merge Sort
- Counting Sort
- Bucket Sort
- Radix Sort
- Concurrent
- Blocking Queue
- Object Pool (Semaphore)
- Cache