Welcome to my DSA learning repository! This collection represents months of dedicated work implementing fundamental Data Structures and Algorithms concepts in Java. Whether you're preparing for technical interviews or strengthening your programming foundation, this repository aims to be a comprehensive resource.
This repository is organized into 13 main sections, each containing two sets of problems with different approaches:
DSA_Programs/
├── 1_Math_Problems/
├── 2_Arrays&Strings/
├── 3_Bitwise_Operations/
├── 4_Recursion/
├── 5_Searching_&_Sorting/
├── 6_Stack_and_Queue/
├── 7_Linked_List/
├── 8_Tree/
├── 9_Graph/
├── 10_Greedy_and_backtracking/
├── 11_Dynamic_Programming/
├── 12_String&Other_Programming/
└── 13_Heap_&_Hashing/
- Clean, well-documented Java implementations
- Multiple approaches to solve each problem
- Time and Space complexity analysis
- Progressive difficulty levels
- Detailed explanations and comments
- Organized by topics and concepts
-
Math Problems
- Basic to advanced mathematical operations
- Number theory implementations
-
Arrays & Strings
- Array manipulations
- String algorithms
- Pattern matching
-
Bitwise Operations
- Bit manipulation
- Optimization techniques
-
Recursion
- Basic to advanced recursion
- Backtracking fundamentals
-
Searching & Sorting
- Linear and Binary Search
- Various sorting algorithms
- Custom search implementations
-
Stack & Queue
- Stack applications
- Queue variations
- Priority Queue implementations
-
Linked List
- Singly Linked List
- Doubly Linked List
- Complex operations
-
Tree
- Binary Search Tree
- Tree traversals
- Advanced tree operations
-
Graph
- Graph representations
- DFS & BFS
- Shortest path algorithms
-
Greedy & Backtracking
- Optimization problems
- Decision-making algorithms
-
Dynamic Programming
- Classical DP problems
- Optimization techniques
-
String & Other Programming
- Pattern matching
- String manipulations
-
Heap & Hashing
- Heap operations
- Hash table implementations
- Clone the repository:
git clone https://github.com/Suniksha12/DSA_Programs.git
- Navigate to specific topic directory
- Each problem contains multiple Java files with different approaches
- Read the comments for understanding the approach and complexity
- Start with basic topics if you're a beginner
- Each topic has SET-1 and SET-2 folders for progressive learning
- Read the problem statement in comments
- Understand the approach and complexity analysis
- Try solving before looking at the solution
- Compare your solution with the provided implementations
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Give a ⭐️ if this project helped you! Your support means a lot!
This project is licensed under the MIT License - see the LICENSE.md file for details
If you have any questions, feel free to reach out or create an issue.
Happy Coding! 👨💻👩💻
Note: This repository is actively maintained. Feel free to raise issues or suggest improvements!