This repository contains any code that is related to Data Structure & Algorithm and its applications in problem-solving.
Here is the table of contents:
- Queue: a data structure for storing data in FIFO (First In First Out) order.
- Stack: a data structure for storing data in LIFO (Last In First Out) order.
- Tree: a data structure for storing data hierarchically.
- Binary Search Tree: a data structure for storing sorted hierarchical data with each node having
at most two children. The left one is smaller from the parent and the right one is bigger.
- Breadth First Search: an algorithm to traverse the tree elements begin from all the root node adjacent moving downward.
- Depth First Search: an algorithm to traverse the tree elements as far as possible from the root starting from the most left adjacent then moving back to the parent.
- Balanced Binary Search Tree: a special type of Binary Search Tree which maintains the height in each alteration (insert/update/delete). Balanced Binary Search Tree in this repository implements AVL Tree. The core concept of this data structure is doing checking in every alteration and rotating the branch if the alteration cause imbalance.
- Binary Search Tree: a data structure for storing sorted hierarchical data with each node having
at most two children. The left one is smaller from the parent and the right one is bigger.
- Shunting Yard: an algorithm to convert an infix expression to a postfix expression. Here is the
example:
A * B + C
->A B * C +
.