prabhupant / python-ds

No non-sense and no BS repo for how data structure code should be in Python - simple and elegant.
MIT License
2.82k stars 610 forks source link
algorithms computer-science data-structures

Python Data Structures and Algorithms

No non-sense solutions to common Data Structure and Algorithm interview questions in Python. Follows a consistent approach throughout problems.

Objective

There are a plenty of resources when it comes to interview preparations on the internet. What prompted me to create this project was the dissimilarity across different approaches and the infused complexity of the code.

Feel free to contribute but please follow the Contributing Guidelines as I want to maintain the uniformity of the implementation of data structures and algorithms. Last time around, people bombarded with me with Pull Requests, Issues and Emails insisting me to merge their changes

The open source community has helped me a lot during my interview preparations and studies while I was in my undergrad. I always wanted to give something back to the community. In my endeavour to contribute something back, I will be uploading data structures and algorithms questions in Python in this repo. Feel free to contribute and get in touch!

Structure of the repository

As of now, the repository contains 3 main directories: Bookmarks, Data Structures and Algorithms.

Data Structures

Contains all data structure questions categorised into sub-directories like stack, queue, etc according to their type.

  1. Array
  2. [Dictionary]()
  3. Binary Search Tree
  4. Linked List
  5. Stack
  6. Graphs
  7. Circular Linked List
  8. Doubly Linked List

Algorithms

This directory contains various types of algorithm questions like Dynamic Programming, Sorting, Greedy, etc. The current structure of this directory is as follows:

  1. Dynamic Programming
  2. Graphs
  3. Greedy
  4. Math
  5. Misc
  6. Sorting
  7. Bit Manipulation

Bookmarks

You can find useful links in this repository in the different markdown files. Below is a table of contents.

Category Link
Articles Click Here
Books Click Here
Topics Click Here
Tutorials Click Here
Videos Click Here
Misc. Click Here

Things need to be done

As you can see, the repo is still in its infancy. Here are some key things in the to-do.

  1. Queue questions
  2. Algorithms
  3. More questions in data structures, especially for graph, circular linked list, trees, heaps and hash.

Contributing

Contributions are always welcomed. Feel free to raise new issues, file new PRs. Consider giving it a star and fork this repo!

To follow the guidelines, refer to Contributing.md

License

MIT License