From 5000feb8694fe8525870f495e182ee39c8967dbc Mon Sep 17 00:00:00 2001 From: muratbiberoglu Date: Mon, 27 Jan 2025 04:01:56 +0300 Subject: [PATCH 1/2] migrated bundle 04-graph-1 --- docs/graph/binary-search-tree.md | 156 ++++++++++++++++++++++++++++++ docs/graph/heap.md | 138 ++++++++++++++++++++++++++ docs/graph/img/360px-Max-Heap.png | Bin 0 -> 21108 bytes docs/graph/img/Heap-as-array.png | Bin 0 -> 13456 bytes docs/graph/img/binary-tree.png | Bin 0 -> 23185 bytes docs/graph/img/binarytree.png | Bin 0 -> 16139 bytes docs/graph/img/heap1.png | Bin 0 -> 42406 bytes docs/graph/img/heap2.png | Bin 0 -> 21290 bytes docs/graph/index.md | 3 + docs/graph/tree-traversals.md | 80 +++++++++++++++ 10 files changed, 377 insertions(+) create mode 100644 docs/graph/binary-search-tree.md create mode 100644 docs/graph/heap.md create mode 100644 docs/graph/img/360px-Max-Heap.png create mode 100644 docs/graph/img/Heap-as-array.png create mode 100644 docs/graph/img/binary-tree.png create mode 100644 docs/graph/img/binarytree.png create mode 100644 docs/graph/img/heap1.png create mode 100644 docs/graph/img/heap2.png create mode 100644 docs/graph/tree-traversals.md diff --git a/docs/graph/binary-search-tree.md b/docs/graph/binary-search-tree.md new file mode 100644 index 0000000..866726a --- /dev/null +++ b/docs/graph/binary-search-tree.md @@ -0,0 +1,156 @@ +--- +title: Binary Search Tree +tags: + - Tree + - Binary Search + - BST +--- + +A Binary tree is a tree data structure in which each node has at most two children, which are referred to as the left child and the right child. + +For a binary tree to be a binary search tree, the values of all the nodes in the left sub-tree of the root node should be smaller than the root node's value. Also the values of all the nodes in the right sub-tree of the root node should be larger than the root node's value. + +
+![a simple binary search tree](img/binarytree.png) +
a simple binary search tree
+
+ +## Insertion Algorithm + +1. Compare values of the root node and the element to be inserted. +2. If the value of the root node is larger, and if a left child exists, then repeat step 1 with root = current root's left child. Else, insert element as left child of current root. +3. If the value of the root node is lesser, and if a right child exists, then repeat step 1 with root = current root's right child. Else, insert element as right child of current root. + +## Deletion Algorithm +- Deleting a node with no children: simply remove the node from the tree. +- Deleting a node with one child: remove the node and replace it with its child. +- Node to be deleted has two children: Find inorder successor of the node. Copy contents of the inorder successor to the node and delete the inorder successor. +- Note that: inorder successor can be obtained by finding the minimum value in right child of the node. + +## Sample Code + +```c +// C program to demonstrate delete operation in binary search tree +#include +#include + +struct node +{ + int key; + struct node *left, *right; +}; + +// A utility function to create a new BST node +struct node *newNode(int item) +{ + struct node *temp = (struct node *)malloc(sizeof(struct node)); + temp->key = item; + temp->left = temp->right = NULL; + return temp; +} + +// A utility function to do inorder traversal of BST +void inorder(struct node *root) +{ + if (root != NULL) + { + inorder(root->left); + printf("%d ", root->key); + inorder(root->right); + } +} + +/* A utility function to insert a new node with given key in BST */ +struct node* insert(struct node* node, int key) +{ + /* If the tree is empty, return a new node */ + if (node == NULL) return newNode(key); + + /* Otherwise, recur down the tree */ + if (key < node->key) + node->left = insert(node->left, key); + else + node->right = insert(node->right, key); + + /* return the (unchanged) node pointer */ + return node; +} + +/* Given a non-empty binary search tree, return the node with minimum + key value found in that tree. Note that the entire tree does not + need to be searched. */ +struct node * minValueNode(struct node* node) +{ + struct node* current = node; + + /* loop down to find the leftmost leaf */ + while (current->left != NULL) + current = current->left; + + return current; +} + +/* Given a binary search tree and a key, this function deletes the key + and returns the new root */ +struct node* deleteNode(struct node* root, int key) +{ + // base case + if (root == NULL) return root; + + // If the key to be deleted is smaller than the root's key, + // then it lies in left subtree + if (key < root->key) + root->left = deleteNode(root->left, key); + + // If the key to be deleted is greater than the root's key, + // then it lies in right subtree + else if (key > root->key) + root->right = deleteNode(root->right, key); + + // if key is same as root's key, then This is the node + // to be deleted + else + { + // node with only one child or no child + if (root->left == NULL) + { + struct node *temp = root->right; + free(root); + return temp; + } + else if (root->right == NULL) + { + struct node *temp = root->left; + free(root); + return temp; + } + + // node with two children: Get the inorder successor (smallest + // in the right subtree) + struct node* temp = minValueNode(root->right); + + // Copy the inorder successor's content to this node + root->key = temp->key; + + // Delete the inorder successor + root->right = deleteNode(root->right, temp->key); + } + return root; +} +``` + +## Time Complexity + +The worst case time complexity of search, insert, and deletion operations is $\mathcal{O}(h)$ where h is the height of Binary Search Tree. In the worst case, we may have to travel from root to the deepest leaf node. The height of a skewed tree may become $N$ and the time complexity of search and insert operation may become $\mathcal{O}(N)$. So the time complexity of establishing $N$ node unbalanced tree may become $\mathcal{O}(N^2)$ (for example the nodes are being inserted in a sorted way). But, with random input the expected time complexity is $\mathcal{O}(NlogN)$. + +However, you can implement other data structures to establish Self-balancing binary search tree (which will be taught later), popular data structures that implementing this type of tree include: + +- 2-3 tree +- AA tree +- AVL tree +- B-tree +- Red-black tree +- Scapegoat tree +- Splay tree +- Treap +- Weight-balanced tree diff --git a/docs/graph/heap.md b/docs/graph/heap.md new file mode 100644 index 0000000..2711201 --- /dev/null +++ b/docs/graph/heap.md @@ -0,0 +1,138 @@ +--- +title: Heap +tags: + - Heap + - Priority Queue +--- + +
+![a simple binary search tree](img/360px-Max-Heap.png) +
an example max-heap with 9 nodes
+
+ +The heap is a complete binary tree with N nodes, the value of all the nodes in the left and right sub-tree of the root node should be smaller than the root node's value. + +In a heap, the highest (or lowest) priority element is always stored at the root. A heap is not a sorted structure and can be regarded as partially ordered. As visible from the heap-diagram, there is no particular relationship among nodes on any given level, even among the siblings. Because a heap is a complete binary tree, it has a smallest possible height. A heap with $N$ nodes has $logN$ height. A heap is a useful data structure when you need to remove the object with the highest (or lowest) priority. + +## Implementation + +Heaps are usually implemented in an array (fixed size or dynamic array), and do not require pointers between elements. After an element is inserted into or deleted from a heap, the heap property may be violated and the heap must be balanced by internal operations. + +The first (or last) element will contain the root. The next two elements of the array contain its children. The next four contain the four children of the two child nodes, etc. Thus the children of the node at position n would be at positions $2*n$ and $2*n + 1$ in a one-based array. This allows moving up or down the tree by doing simple index computations. Balancing a heap is done by sift-up or sift-down operations (swapping elements which are out of order). So we can build a heap from an array without requiring extra memory. + +
+![example a heap as an array](img/Heap-as-array.png) +
example a heap as an array
+
+ +## Insertion + +Basically add the new element at the end of the heap. Then look it's parent if it is smaller or bigger depends on the whether it is max-heap or min-heap (max-heap called when Parents are always greater), swap with the parent. If it is swapped do the same operation for the parent. + +## Deletion + +If you are going to delete a node (root node or another one does not matter), + +1. Swap the node to be deleted with the last element of heap to maintain a balanced structure. +2. Delete the last element which is the node we want to delete at the start. +3. Now you have a node which is in the wrong place, You have to find the correct place for the swapped last element, to do this starting point you should check its left and right children, if one them is greater than our node you should swap it with the greatest child(or smallest if it is min-heap). +4. Still current node may in the wrong place, so apply Step 3 as long as it is not greater than its children(or smaller if it is min-heap). + +
+![](img/heap1.png) +![](img/heap2.png) +
an example deletion on a heap structure
+
+ +```py +class BinHeap: + def __init__(self): + self.heapList = [0] + self.currentSize = 0 + + def percUp(self,i): + while i // 2 > 0: + if self.heapList[i] < self.heapList[i // 2]: + tmp = self.heapList[i // 2] + self.heapList[i // 2] = self.heapList[i] + self.heapList[i] = tmp + i = i // 2 + + def insert(self,k): + self.heapList.append(k) + self.currentSize = self.currentSize + 1 + self.percUp(self.currentSize) + + def percDown(self,i): + while (i * 2) <= self.currentSize: + mc = self.minChild(i) + if self.heapList[i] > self.heapList[mc]: + tmp = self.heapList[i] + self.heapList[i] = self.heapList[mc] + self.heapList[mc] = tmp + i = mc + + def minChild(self,i): + if i * 2 + 1 > self.currentSize: + return i * 2 + else: + if self.heapList[i*2] < self.heapList[i*2+1]: + return i * 2 + else: + return i * 2 + 1 + + def delMin(self): + retval = self.heapList[1] + self.heapList[1] = self.heapList[self.currentSize] + self.currentSize = self.currentSize - 1 + self.heapList.pop() + self.percDown(1) + return retval + + def buildHeap(self,alist): + i = len(alist) // 2 + self.currentSize = len(alist) + self.heapList = [0] + alist[:] + while (i > 0): + self.percDown(i) + i = i - 1 + +bh = BinHeap() +bh.buildHeap([9,5,6,2,3]) + +print(bh.delMin()) +print(bh.delMin()) +print(bh.delMin()) +print(bh.delMin()) +print(bh.delMin()) +``` + +## Complexity + +Insertion $\mathcal{O}(logN)$, delete-min $\mathcal{O}(logN)$ , and finding minimum $\mathcal{O}(1)$. These operations depend on heap's height and heaps are always complete binary trees, basically the height is $logN$. (N is number of Node) + +## Priority Queue +Priority queues are a type of container adaptors, specifically designed so that its first element is always the greatest of the elements it contains, according to some strict weak ordering criterion. + +While priority queues are often implemented with heaps, they are conceptually distinct from heaps. A priority queue is an abstract concept like "a list" or "a map"; just as a list can be implemented with a linked list or an array, a priority queue can be implemented with a heap or a variety of other methods such as an unordered array. + +```cpp +#include // std::cout +#include // std::priority_queue +using namespace std; +int main () { + priority_queue mypq; + + mypq.push(30); + mypq.push(100); + mypq.push(25); + mypq.push(40); + + cout << "Popping out elements..."; + while (!mypq.empty()) { + cout << ' ' << mypq.top(); + mypq.pop(); + } + return 0; +} +``` diff --git a/docs/graph/img/360px-Max-Heap.png b/docs/graph/img/360px-Max-Heap.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee382231aaff83819a933c66f971b8c0543978e GIT binary patch literal 21108 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 literal 0 HcmV?d00001 diff --git a/docs/graph/img/binarytree.png b/docs/graph/img/binarytree.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3303ff3b23e74dc331c957fe29b7cc348ee218 GIT binary patch literal 16139 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 UcS6~=aKEL1wS~Po)yyO2|E9GaLjV8( literal 0 HcmV?d00001 diff --git a/docs/graph/index.md b/docs/graph/index.md index 4a76d67..d8b8c8f 100644 --- a/docs/graph/index.md +++ b/docs/graph/index.md @@ -9,6 +9,9 @@ title: Graph ### [Introduction](introduction.md) ### [Definitions](definitions.md) ### [Representing Graphs](representing-graphs.md) +### [Tree Traversals](tree-traversals.md) +### [Binary Search Tree](./binary-search-tree.md) +### [Heap](heap.md) ### [Depth First Search](depth-first-search.md) ### [Breadth First Search](breadth-first-search.md) ### [Cycle Finding](cycle-finding.md) diff --git a/docs/graph/tree-traversals.md b/docs/graph/tree-traversals.md new file mode 100644 index 0000000..18570f1 --- /dev/null +++ b/docs/graph/tree-traversals.md @@ -0,0 +1,80 @@ +--- +title: Tree Traversals +tags: + - Tree + - Preorder + - Postorder + - Inorder +--- + +The tree traversal is the process of visiting every node exactly once in a tree structure for some purposes(like getting information or updating information). In a binary tree there are some described order to travel, these are specific for binary trees but they may be generalized to other trees and even graphs as well. + +
+![a binary tree](img/binary-tree.png) +
a binary tree
+
+ +## Preorder Traversal + +Preorder means that a root will be evaluated before its children. In other words the order of evaluation is: Root-Left-Right + +``` +Preorder Traversal + Look Data + Traverse the left node + Traverse the right node +``` + +Example: 50 – 7 – 3 – 2 – 8 – 16 – 5 – 12 – 17 – 54 – 9 – 13 + +## Inorder Traversal +Inorder means that the left child (and all of the left child’s children) will be evaluated before the root and before the right child and its children. Left-Root-Right (by the way, in binary search tree inorder retrieves data in sorted order) + +``` +Inorder Traversal + Traverse the left node + Look Data + Traverse the right node +``` + +Example: 2 – 3 – 7 – 16 – 8 – 50 – 12 – 54 – 17 – 5 – 9 – 13 + +## Postorder Traversal +Postorder is the opposite of preorder, all children are evaluated before their root: Left-Right-Root + +``` +Postorder Traversal + Traverse the left node + Traverse the right node + Look Data +``` + +Example: 2 – 3 – 16 – 8 – 7 – 54 – 17 – 12 – 13 – 9 – 5 – 50 + +## Implementation + +```py +class Node: + def __init__(self,key): + self.left = None + self.right = None + self.val = key + +def printInorder(root): + if root: + printInorder(root.left) + print(root.val) + printInorder(root.right) + +def printPostorder(root): + if root: + printPostorder(root.left) + printPostorder(root.right) + print(root.val) + +def printPreorder(root): + if root: + print(root.val) + printPreorder(root.left) + printPreorder(root.right) +``` From a5119d9614534a1925185694d98786c9882cff04 Mon Sep 17 00:00:00 2001 From: muratbiberoglu Date: Mon, 27 Jan 2025 04:21:31 +0300 Subject: [PATCH 2/2] some fixes on segment tree page --- docs/data-structures/segment-tree.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/data-structures/segment-tree.md b/docs/data-structures/segment-tree.md index 458f92c..4e62f4f 100644 --- a/docs/data-structures/segment-tree.md +++ b/docs/data-structures/segment-tree.md @@ -103,6 +103,7 @@ Previously, update function was called to update only a single value in array. P ### Lazy Propogation Algorithm We need a structure that can perform following operations on an array $[1,N]$. + - Add inc to all elements in the given range $[l, r]$. - Return the sum of all elements in the given range $[l, r]$. @@ -118,6 +119,7 @@ Trick is to be lazy i.e, do work only when needed. Do the updates only when you Let’s be lazy as told, when we need to update an interval, we will update a node and mark its children that it needs to be updated and update them when needed. For this we need an array $lazy[]$ of the same size as that of segment tree. Initially all the elements of the $lazy[]$ array will be $0$ representing that there is no pending update. If there is non-zero element $lazy[k]$ then this element needs to update node k in the segment tree before making any query operation, then $lazy[2\cdot k]$ and $lazy[2 \cdot k + 1]$ must be also updated correspondingly. To update an interval we will keep 3 things in mind. + - If current segment tree node has any pending update, then first add that pending update to current node and push the update to it’s children. - If the interval represented by current node lies completely in the interval to update, then update the current node and update the $lazy[]$ array for children nodes. - If the interval represented by current node overlaps with the interval to update, then update the nodes as the earlier update function. @@ -202,6 +204,7 @@ Notice that the only difference with the regular query function is pushing the l ## Binary Search on Segment Tree Assume we have an array A that contains elements between 1 and $M$. We have to perform 2 kinds of operations. + - Change the value of the element in given index i by x. - Return the value of the kth element on the array when sorted. @@ -240,8 +243,9 @@ This is of course, slow. Let’s use segment tree’s to improve it. First we wi
![segment tree updates](img/updated_segtree.png){ width="100%" }
Segment Tree After First Update
+
-```c++ +```cpp void update(int i, int x) { update(1, 1, M, A[i], --F[A[i]]); // Decrement frequency of old value A[i] = x; // Update A[i] to new value @@ -263,7 +267,7 @@ int query(int k) { If you look at the code above you can notice that each update takes $\mathcal{O}(\log M)$ time and each query takes $\mathcal{O}(\log^{2} M)$ time, but we can do better. -### How To Speed Up? +### How To Speed Up? If you look at the segment tree solution on preceding subsection you can see that queries are performed in $\mathcal{O}(\log^{2} M)$ time. We can make is faster, actually we can reduce the time complexity to $\mathcal{O}(\log M)$ which is same with the time complexity for updates. We will do the binary search when we are traversing the segment tree. We first will start from the root and look at its left child’s sum value, if this value is greater than k, this means our answer is somewhere in the left child’s subtree. Otherwise it is somewhere in the right child’s subtree. We will follow a path using this rule until we reach a leaf, then this will be our answer. Since we just traversed $\mathcal{O}(\log M)$ nodes (one node at each level), time complexity will be $\mathcal{O}(\log M)$. Look at the code below for better understanding.
@@ -271,7 +275,7 @@ If you look at the segment tree solution on preceding subsection you can see tha
Solution of First Query
-```c++ +```cpp void update(int i, int x) { update(1, 1, M, A[i], --F[A[i]]); // Decrement frequency of old value A[i] = x; // Update A[i] to new value @@ -289,4 +293,4 @@ int query(int node, int start, int end, int k) { int query(int k) { return query(1, 1, M, k); // Public interface for querying } -``` \ No newline at end of file +```