A comprehensive collection of Data Structure and Algorithm implementations, organized by topic — built and maintained by @yamiSukehiro2907.
This repository is aimed at helping learners and developers strengthen their DSA concepts through clean, practical examples and interview-style problems.
DSA/
├── Go/Recursion-1 # Solving interview questions in Go (recursion focus)
├── array # Array algorithms & problems
├── binary_tree # Binary tree data-structures & problems
├── bit_manipulation # Bit-wise operations & problems
├── graph # Graph data-structures & graph algorithms
├── linkedlist # Linked list data-structures & problems
├── map # Map / HashMap related problems
├── queue # Queue and deque implementations
├── recursion # Recursion-based problems
├── stack # Stack data-structure & problems
├── tries # Tries data-structure & problems
├── .idea # IDE configuration files (local development)
└── README.md # ← You are here
- Topic-wise folders dedicated to individual data structures or algorithmic paradigms.
- Multiple code examples and common interview problems.
- A separate folder for Go language (
Go/Recursion-1) demonstrating recursion problems. - Structured and modular approach for easy understanding.
- Ideal for DSA practice, interview preparation, and concept revision.
- Learn, practice, and master essential DSA topics step by step.
- Suitable for beginners, students preparing for coding interviews, and developers revising core concepts.
- Helps build strong problem-solving skills and clean coding habits.
- Pick a topic folder (e.g.,
graph,bit_manipulation, orlinkedlist). - Explore the source files inside — each one contains implementations or problems on that topic.
- Try to understand and reimplement the code on your own.
- Analyze time and space complexity of each approach.
- Modify, extend, or optimize the code to improve your skills.
- Optionally, explore the
Go/Recursion-1folder for recursion exercises written in Go.
- Begin with fundamental topics like
arrayandstackbefore moving to advanced ones likegraphorbinary_tree. - Maintain consistent naming and folder structure when adding your own files.
- Track your progress — mark solved problems and revisit challenging ones later.
- Compare multiple approaches (iterative, recursive, optimized).
- Study patterns like divide and conquer, two-pointer, sliding window, etc.
-
Data Structures
- Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Hash Maps, Heaps
-
Algorithms
- Sorting & Searching
- Recursion & Backtracking
- Bit Manipulation
- Greedy Algorithms
- Graph Traversals (BFS, DFS)
- Dynamic Programming
Contributions are always welcome!
If you'd like to add new problems, improve solutions, or update documentation:
-
Fork this repository.
-
Create a new branch:
git checkout -b feature/new-topic
-
Add your code or documentation.
-
Commit your changes:
git commit -m "Added [topic/problem name]" -
Push the branch:
git push origin feature/new-topic
-
Open a Pull Request.
💡 Follow the folder structure and naming conventions for better organization.
This project is open-source and available for educational and personal use. You’re free to learn from, modify, and share the code with proper attribution.
For queries, feedback, or suggestions — open an Issue on GitHub or connect directly via GitHub discussions.
Happy Coding and Keep Learning! 🚀