Skip to content

"Data-Structure-And-Algorithms-using-Python" is a comprehensive collection of data structures and algorithms implemented in Python.

Notifications You must be signed in to change notification settings

ehtisham-sadiq/Data-Structure-And-Algorithms-using-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data-Structure-And-Algorithms-using-Python

Welcome to the "30 Days of Data Structures and Algorithms using Python" repository! This repository contains a comprehensive 30-day plan for learning data structures and algorithms using the Python programming language.

Table of Contents

  1. Day 1: Review the basics of Python programming

    • Data types
    • Control structures
    • Functions.
  2. Day 2: Basic Data Structures in Python like List, Tuple

    • List Operations
    • Tuple Operations
    • Practice Problems
  3. Day 3: Advanced Data Structures in Python like Dictionaries

    • Operations on Dictionary
    • Practice Problems
  4. Day 4: Advanced Data Structures in Python like Set

    • Operations on Set
    • Practice Problems
  5. Day 5: Basic complexity analysis and big-O notation

  6. Day 6: Stacks and Queues

  7. Day 7: Linked List and Its Types

  8. Day 8: Operations on Linked List

  9. Day 9: Sorting Algorithms like bubble sort, insertion sort, and selection sort

  10. Day 10: Practice implementing and analyzing time and space complexity of Sorting Algorithms

  11. Day 11: More Advanced Sorting algorithms like merge sort and quick sort

  12. Day 12: Practice implementing and analyzing time and space complexity of sorting algorithms.

  13. Day 13: Searching algorithms like linear search and binary search, and

  14. Day 14: Practice implementing and analyzing the time and space complexity of Searching Algorithms

  15. Day 15: Recursion and practice solving problems.

  16. Day 16: Dynamic programming

  17. Day 17: Practice solving problems using dynamic programming.

  18. Day 18: Greedy algorithms

  19. Day 19: Practice solving problems using greedy algorithms.

  20. Day 20: Backtracking

  21. Day 21: Trees

    • Binary Trees
    • Binary Search Trees
  22. Day 22: Heaps

    • MinHeap
    • MaxHeap
  23. Day 23: Graph data structures

    • Adjacency List
    • Adjacency matrix representations.
  24. Day 24: Graph traversal algorithms

    • Depth-first search
    • Breadth-first search
    • Practice Problems
  25. Day 25: Minimum Spanning Tree algorithms

    • Kruskal's algorithm
    • Prim's algorithm
    • Practice Problems
  26. Day 26: Shortest path algorithms

    • Dijkstra's algorithm
    • Bellman-Ford algorithm
    • Practice Problems
  27. Day 27: AVL trees

  28. Day 28: Hash Tables

  29. Day 29: Topological Sorting

  30. Day 30: Revision and Conclusion

How to Use This Repository

This repository is organized by day, with each day containing a set of exercises and a corresponding solution in the form of a Jupyter notebook. To get the most out of this roadmap, we recommend that you follow the plan in order and try to complete the exercises on your own before looking at the solutions.

Prerequisites

  • Python 3.x
  • Jupyter Notebook

Contributing

We welcome contributions to this repository! If you have an idea for an exercise or a solution, please feel free to submit a pull request.

Acknowledgements

This roadmap is inspired by the "Cracking the Coding Interview" book and the "Data Structures and Algorithms in Python" course on Coursera.