Algorithms Study Cases
This repo contains most common algorithms and DS implementations. Solution are implemented in c++
or python
.
To execute implemented tasks please follow the instructions in wiki of this repo.
Makefiles
are provided: wiki
The list of implemented tasks is represented in Readme.md
.
Descriptions for each task and solution are in folders (click on links in task lists).
Current List:
Stack & Queue: c++
- Stack implemented with Linked List: stack_linked_list/
- Queue implemented with Linked List: queue_linked_list/
- Special Stack with getMin() method: special_stack/
- Stack implemented from a Queue: stack_queue/
- Queue implemented from a Stack: queue_stack/
Linked List: c++
- Implementation of a class: implementation/
- Detect and Remove cycle: detect_remove_loop/
Sorting: c++
- Selection Sort selection_sort
- Insertion Sort insertion_sort
- Merge Sort merge_sort
- Heap Sort heap_sort
Binary Min Heap: c++
- Implementation of a class: implementation
-
Binary Heap: c++
-
Binary Search Tree: c++
- Implementation:
c++
bst, avl
- Traversals:
c++
- Applications:
c++
- In-order Successor:
c++
- Lowest Common Ancestor for two nodes in BST:
c++
- 2nd Largest Node in BST:
c++
- Non-related nodes in BST:
c++
- Determine if two trees are equal:
c++
-
Binary Tree Applications:
- All Paths With Sum
python
- Duplicated Subtrees
python
-
Weighted Tree
Dynamic programming: python
- Edit Distance:
python
- Longest Increasing Subsequence:
python
Recursion:
- Edit Distance:
python
- Longest Increasing Subsequence:
python