This repo contains the code of various data structures and algorithms along with explanations of each. Written in Python, the DSAAs are written from scratch with as little help as possible from built-in modules.
I will document as much as possible so that you can get an idea of how to recreate these in other languages. For example when implementing a queue, I see some repos simply appending to the end of a list to enqueue and popping at the beginning to dequeue. While this is a perfectly valid implementation in Python, this does not necessarily work in other languages, e.g. Java.
This repo is not for those who are new to DSAAs. There are many other resources online dedicated to that. Instead, this repo is for those who have been introduced but are still learning/understanding concepts. As mentioned, I will document as much as possible, and I may also provide pictures and examples to help you understand the concepts better.
- Stack
- Queue
- Singly & Doubly Linked List
- ArrayList
- Hash table
- Binary Search Tree
- AVL tree
- Heap
- Graph
- Linear Search
- Binary Search
- Selection Sort
- Insertion Sort
- Bubble sort
- Tree Sort
- Shell Sort
- Heap Sort
- Merge Sort
- Quick Sort