This repository contains resources and implementations for core DSA concepts and fundamental Java programming topics.
-
Trees
- Binary Trees
- Binary Search Trees (BST)
- AVL Trees
- Red-Black Trees
- B-Trees
- Tries
-
Graphs
- Graph Representations (Adjacency Matrix, Adjacency List)
- Graph Traversals (BFS, DFS)
- Shortest Path Algorithms (Dijkstra's, Bellman-Ford)
- Minimum Spanning Trees (Prim's, Kruskal's)
- Topological Sort
-
Advanced Data Structures
- Heaps/Priority Queues
- Disjoint Set Union (Union-Find)
- Segment Trees
- Fenwick Trees (Binary Indexed Trees)
- Hash Tables (Implementation details)
-
Sorting
- QuickSort
- MergeSort
- HeapSort
- RadixSort
- CountingSort
-
Searching
- Binary Search and its variations
- Ternary Search
-
Dynamic Programming
- Memoization
- Tabulation
- Common DP Patterns
- State Machines
-
Greedy Algorithms
- Activity Selection
- Huffman Coding
- Fractional Knapsack
-
Backtracking
- N-Queens
- Sudoku Solver
- Combinatorial problems
-
String Algorithms
- KMP Algorithm
- Rabin-Karp
- Suffix Arrays and Trees
- String Matching
-
Object-Oriented Programming in Depth
- Abstraction techniques
- Advanced inheritance scenarios
- Polymorphism best practices
- Design patterns implementation
-
Exception Handling
- Custom exceptions
- Exception chaining
- Try-with-resources
- Best practices
-
Java Collections Framework
- Performance characteristics
- Custom implementations
- Collections utility methods
- Concurrent collections
-
Generics
- Type erasure
- Bounded type parameters
- Wildcards
- Generic methods and classes
-
Multithreading and Concurrency
- Thread lifecycle and states
- Synchronization mechanisms
- Locks and atomic variables
- Thread pools and executors
- CompletableFuture
- Fork/Join framework
-
Java I/O and NIO
- File handling
- Serialization
- Non-blocking I/O
- Memory-mapped files
-
Functional Programming
- Lambda expressions
- Method references
- Functional interfaces
- Stream API advanced operations
-
Reflection and Annotations
- Dynamic class loading
- Metaprogramming
- Custom annotations
- Annotation processors
-
Java Database Connectivity (JDBC)
- Connection pooling
- Prepared statements
- Batch processing
- Transaction management
-
Java APIs
- Date and Time API
- Optional class
- Regular Expressions
- Internationalization
- Graph algorithms visualizer
- Dynamic programming problem solver
- Custom data structure library
- Multithreaded application examples
- Design patterns showcase
- Books
- Online courses
- Practice websites
- Community forums
Feel free to contribute to this repository by adding implementations, improving existing code, or suggesting additional topics.