I would be learning data structures and algorithm properly and extensively in 2023(over its span).
During this learning spree:
- Python programming language would be used as the major tool of implementation.
- Each concept would be documented properly in here.
An alternative to arrays(better off at times)
- Insertion
- Insert at the beginning
- Insert at the end
- Insert at index
- Insert multiple values
- Deletion
- Delete by value
- Delete by index
- Existence -> bool
- Get Existence index -> int
- Length
- Count of value
- Print linked list
Double linked list
- Insertion
- Insert at the beginning
- Insert at the end
- Insert at index
- Insert multiple values
- Deletion
- Delete by value
- Delete by index
- Existence -> bool
- Get Existence index -> int
- Length(optimised O(1))
- Count of value
- Print linked list forward and backward
For storing key-value pair using a hash function
- Insert key value pair
- Retrieve value of key
- Hash function
- Ensure uniqueness of key
- Resetting value of a key
- check if key exists in hash table
Implemented using deque(double ended queue) in python. stack operates on the Last in First Out (LIFO) mode
- get length
- add to stack
- pop last item from stack
- return last item without popping(peek)
- check if empty
- print stack
Implemented using deque(double ended queue) in python. Queue operates on the First in First Out (FIFO) mode
- get length
- add to queue(enqueue)
- pop first item from stack
- return first item without popping(peek)
- check if empty
- print queue
A non-linear data structure, see it as your normal tree with root, branches and leaves.
- get level of a tree node
- print tree in designated format
- add children(leaves) to a treenode(branch)
A non-linear data structure, a special kind of tree in which a treenode(branch) can have a maximum of two chidren(leaves) in which the lesser data always falls to the left of the treenode and the greater data falls to the right of the treenode.
- insertion operation
- deletion operation (ask me about this)
- sum of data in tree
- get minimum and maximum data in tree
- check existence of a data in the tree
- Print tree
- in order traversal
- pre order traversal
- post order traversal
Search for a number in an array, sorted or unsorted and returns the index, iterates all through to where the number exists
O(n)
Search for a number in a sorted array, and returns the index, divides the array in halves until number is found where existing.
O(log n)