A curated collection of weekly algorithm and data structure challenges. Each project is a small exercise designed to improve problem-solving skills, coding proficiency, logical reasoning, and consistent coding practice. All projects emphasize clean code, organization, and best coding practices.
- Installation
- Getting Started
- Repository Structure
- Challenges and Exercises
- Contributing
- License
- Contact
To get started, you'll need a programming language of your choice (Python recommended).
git clone https://github.com/ZeyadGabr1/algorithms-and-data-structures.gitcd algorithms-and-data-structurespython -m venv venv
source venv/bin/activate # On Unix/macOS/linux
venv\Scripts\activate # On Windowspip install -r requirements.txt
Getting Started
Browse the folders based on your interest or skill level.Each folder contains README files, explanations, code examples, and challenges.
arrays/ # Array algorithms and problems
graphs/ # Graph algorithms (DFS, BFS, shortest paths, etc.)
linked_lists/ # Linked lists implementations and challenges
searching/ # Searching algorithms (Binary Search, Hash Tables)
sorting/ # Sorting algorithms (Bubble Sort, Quick Sort, Merge Sort)
trees/ # Trees, binary trees, BST, traversals, etc.Implementations with comments.
Example problems and solutions.
Test cases for verification.
Challenges and Exercises
Focus Areas:
Problem-solving: Break down complex problems into manageable steps.
Coding proficiency: Implement efficient solutions with optimal time/space complexity.
Logical reasoning: Develop intuition for algorithms and data structures.
Best practices: Clean code, modular design, and version control.
Arrays: Two Sum, Rotate Array
Linked Lists: Reverse List, Detect Cycle
Trees: Inorder Traversal, Height Calculation
Graphs: Dijkstra's Algorithm, Cycle Detection
Sorting: Bubble Sort vs. Quick Sort
Searching: Binary Search on Sorted Array
Contributions are welcome to:
Add new challenges
Improve explanations
Fix issues
git forkgit checkout -b feature-branchgit commit -m "Add new challenge"git push origin feature-branchThen open a Pull Request. Please follow code best practices.