A comprehensive collection of Data Structures and Algorithms implementations in Java.
-
Advanced Data Structures
- Trie Implementation
- Segment Tree (with point and range updates)
-
Graphs
- Algorithms:
- Bellman Ford
- Dijkstra's Algorithm
- Floyd Warshall
- Minimum Spanning Tree
- Topological Sort
- Cycle Detection in Directed & Undirected Graphs
- Graph Implementations:
- Undirected Graph (Matrix & Adjacency List)
- Weighted Directed/Undirected Graphs
- Algorithms:
-
Heap
- Binary Heap (Max Priority Queue)
- Heap Sort
-
LinkedList
- Basic LinkedList Implementation
- XOR LinkedList
-
Queue
- LinkedList Queue
- Unordered Priority Queue
-
Stacks
- Array Stack
- Generic Stack
- LinkedList Stack
-
Union Find
- Quick Find
- Quick Union
- Weighted Quick Union
- Path Compression
-
Sorting
- Quick Sort
- Merge Sort
- Shell Sort
- Insertion Sort
- Selection Sort
- Dutch National Flag
- Knuth Shuffle
-
Search
- Binary Search Variations
- Core Java Programs
- Builder Pattern
- Factory Pattern
- Singleton Pattern
- Java Streams Examples
Various coding problems including:
- Conference Room Scheduling
- Paint Houses (Dynamic Programming)
- Sliding Window Maximum
- Binary Tree Operations
- String Decoding
- Circular Buffer Implementation
- Amazon Fresh Piles
- And more...
This is a Java project containing various data structure implementations and algorithm solutions. To run any specific implementation:
- Navigate to the specific package
- Each package has a
Main.javafile for testing implementations - Run the respective
Main.javafile
- Java JDK 8 or higher
- Any Java IDE (Eclipse, IntelliJ IDEA, etc.)
This is a personal practice repository but suggestions and improvements are welcome.