curated collection of data structures, algorithms, and problem-solving techniques using Python. This repository is part of my learning and preparation journey for coding interviews and competitive programming.
│
├── README.md
├── LICENSE
├── .gitignore
│
├── basics/
│ ├── variables.py
│ ├── loops.py
│ └── functions.py
│
├── data_structures/
│ ├── arrays.py
│ ├── linked_list.py
│ ├── stack.py
│ ├── queue.py
│ ├── hash_table.py
│ ├── tree.py
│ └── graph.py
│
├── algorithms/
│ ├── searching/
│ │ ├── linear_search.py
│ │ └── binary_search.py
│ ├── sorting/
│ │ ├── bubble_sort.py
│ │ ├── selection_sort.py
│ │ ├── insertion_sort.py
│ │ ├── merge_sort.py
│ │ └── quick_sort.py
│ └── recursion/
│ ├── factorial.py
│ └── fibonacci.py
│
├── advanced/
│ ├── dynamic_programming/
│ │ ├── knapsack.py
│ │ ├── lcs.py
│ │ └── fibonacci_memo.py
│ ├── greedy/
│ │ └── activity_selection.py
│ ├── backtracking/
│ │ ├── n_queens.py
│ │ └── sudoku_solver.py
│ └── graph_algorithms/
│ ├── bfs.py
│ ├── dfs.py
│ ├── dijkstra.py
│ └── kruskal.py
│
├── problems/
│ ├── leetcode/
│ ├── hackerrank/
│ └── codeforces/
│
├── notebooks/
│ └── DSA-cheatsheet.ipynb
│
└── tests/
└── test_array.py
- 🔰 Basics
- 🧱 Data Structures
- ⚙️ Algorithms
- 💡 Advanced Topics (DP, Greedy, Graphs)
- 🧪 Unit Tests
- 💻 Practice Problems (LeetCode, HackerRank, etc.)
- Python 3.x
- Jupyter Notebook
- pytest (for testing)
- Arrays
- Linked List
- Binary Trees
- Graph Algorithms
- Dynamic Programming
- A structured repository for learning and implementing Data Structures and Algorithms (DSA) in Python.
- Designed to strengthen problem-solving skills for coding interviews and competitive programming.
- Includes Python implementations, practice problems, and visual notebooks.
- To prepare for technical interviews at top tech companies.
- To apply theoretical knowledge from my MSc in Applied Data Science.
- To showcase my understanding of algorithmic thinking and clean coding.
- To maintain a consistent habit of practicing DSA using Python.
- Fundamental Data Structures: Arrays, Linked Lists, Stacks, Queues, Hash Tables, Trees, Graphs
- Core Algorithms: Searching, Sorting, Recursion, Backtracking
- Advanced Topics: Dynamic Programming, Greedy Algorithms, Graph Algorithms
- Practice Problems from LeetCode, HackerRank, Codeforces, etc.
- Python 3.x
- Jupyter Notebook (for visualizations and explanations)
- pytest for testing
- Git & GitHub for version control
- Hands-on implementation of each concept
- Code is written with comments and examples
- Covers time and space complexity analysis
- Incrementally adding unit tests and real-world applications
- Build a strong foundation in DSA with Python
- Help others learn DSA through clear, commented code
- Serve as a personal knowledge base for quick review
- Open-source contribution to support learners preparing for interviews
# Clone the repo
git clone https://github.com/MoksedurRahman/data-structures-algorithms-python.git
# Run an example
python data_structures/stack.py