trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19f/chapter-4.pdf · full and complete...
TRANSCRIPT
![Page 1: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/1.jpg)
Trees
(Trees) Data Structures Fall 2019 1 / 28
![Page 2: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/2.jpg)
Trees
A tree is a collection of nodes, which can be empty(recursive definition) If not empty, a tree consists of adistinguished node r (the root), and zero or more nonemptysubtrees T1,T2, · · · ,Tk, each of whose roots are connected by adirected edge from r
(Trees) Data Structures Fall 2019 2 / 28
![Page 3: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/3.jpg)
Some Terminologies
Siblings: nodes share the same parentInternal node: node with at least onechild (A, B, C, F)External node (leaf): node withoutchildren (E, I, J, K, G, H, D)
Ancestor of a node: itself, parent, grandparent, etc.Descendant of a node: itself, child, grandchild, etc.Depth of a node:
I length of the unique path (i.e., number of edges) from the root tothat node
I The depth of a tree is equal to the depth of the deepest leafHeight of a node:
I length of the longest path from that node to a leafI all leaves are at height 0I The height of a tree is equal to the height of the root
Subtree: tree consisting of a node and its descendants(Trees) Data Structures Fall 2019 3 / 28
![Page 4: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/4.jpg)
Example: UNIX Directory
(Trees) Data Structures Fall 2019 4 / 28
![Page 5: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/5.jpg)
Binary Trees
A tree in which no node can have more than two children
The depth of an ”average” binary tree is considerably smallerthan N, even though in the worst case, the depth can be as large asN - 1.
(Trees) Data Structures Fall 2019 5 / 28
![Page 6: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/6.jpg)
Differences Between A Tree and A Binary Tree
The subtrees of a binary tree are ordered; those of a tree are notordered
Are different when viewed as binary trees.Are the same when viewed as trees.
(Trees) Data Structures Fall 2019 6 / 28
![Page 7: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/7.jpg)
Example: Expression Trees
Leaves are operands (constants or variables)The other nodes (internal nodes) contain operatorsWill not be a binary tree if some operators are not binary
(Trees) Data Structures Fall 2019 7 / 28
![Page 8: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/8.jpg)
Pointer Representation of a Tree Node
(Trees) Data Structures Fall 2019 8 / 28
![Page 9: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/9.jpg)
Left Child, Right Sibling Representation
(Trees) Data Structures Fall 2019 9 / 28
![Page 10: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/10.jpg)
Example
(Trees) Data Structures Fall 2019 10 / 28
![Page 11: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/11.jpg)
Tree Traversal - Preorder
visit the roottraverse in preorder thechildren (subtrees)
(Trees) Data Structures Fall 2019 11 / 28
![Page 12: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/12.jpg)
Tree Traversal - Postorder
traverse in postorder thechildren (subtrees)visit the root
(Trees) Data Structures Fall 2019 12 / 28
![Page 13: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/13.jpg)
Tree Traversal - Inorder (Binary Tree)
traverse in inorder theleft subtreevisit the roottraverse in inorder theright subtree
(Trees) Data Structures Fall 2019 13 / 28
![Page 14: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/14.jpg)
Inorder Traversal of an Expression Tree
Infix expression a + b ∗ c + d ∗ e + f ∗ g
(Trees) Data Structures Fall 2019 14 / 28
![Page 15: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/15.jpg)
Full and Complete Binary Trees
A full binary tree of a given height k has 2k+1 − 1 nodes.Parent of node i is node i/2, unless i = 1.Right child of node i is node 2i + 1, unless 2i + 1 > n, where n isthe number of nodes.Left child of node i is node 2i, unless 2i > n, where n is thenumber of nodes.
(Trees) Data Structures Fall 2019 15 / 28
![Page 16: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/16.jpg)
Representing Binary Trees Using Arrays
Waste spaces: in the worst case, a skewed tree of depth k requires2k − 1 spaces, of these, only k spaces will be occupied.Good if the tree is almost full (complete).
(Trees) Data Structures Fall 2019 16 / 28
![Page 17: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/17.jpg)
Threaded Binary Trees
Using left/right pointers in a node, too many null pointers incurrent representation of binary treesRules for constructing the threads
I If ptr→ left child is null, replace it with a pointer to the node thatwould be visited before ptr in an inorder traversal
I If ptr→ right child is null, replace it with a pointer to the node thatwould be visited after ptr in an inorder traversal
(Trees) Data Structures Fall 2019 17 / 28
![Page 18: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/18.jpg)
Threaded Binary Trees (Cont’d)
Inorder traversal of a threaded binary treeI By using of threads we can perform an inorder traversal without
making use of a stack (simplifying the task)I Now, we can follow the thread of any node, ptr, to the ”next” node
of inorder traversal
1 If ptr→ right thread = TRUE, the inorder successor of ptr is ptr→right child by definition of the threads
2 Otherwise we obtain the inorder successor of ptr by following apath of left-child links from the right-child of ptr until we reach anode with left thread = TRUE
(Trees) Data Structures Fall 2019 18 / 28
![Page 19: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/19.jpg)
Binary Search Trees
Stores keys in the nodes in a way so that searching, insertion anddeletion can be done efficiently.Binary search tree property
I For every node X, all the keys in its left subtree are smaller than thekey value in X, and all the keys in its right subtree are larger thanthe key value in X
Average depth of a node is O(logN); maximum depth of a node isO(N)
(Trees) Data Structures Fall 2019 19 / 28
![Page 20: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/20.jpg)
Binary Search Algorithm
Binary Search algorithm of an array of sorted items reduces the searchspace by one half after each comparison
(Trees) Data Structures Fall 2019 20 / 28
![Page 21: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/21.jpg)
Searching BST
If we are searching for 15, then we are done.If we are searching for a key < 15, then we should search in theleft subtree.If we are searching for a key > 15, then we should search in theright subtree.
(Trees) Data Structures Fall 2019 21 / 28
![Page 22: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/22.jpg)
Example
(Trees) Data Structures Fall 2019 22 / 28
![Page 23: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/23.jpg)
findMin/ findMax
Return the node containing the smallest element in the treeStart at the root and go left as long as there is a left child. Thestopping point is the smallest element
Similarly for findMaxTime complexity = O(height of the tree)
(Trees) Data Structures Fall 2019 23 / 28
![Page 24: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/24.jpg)
Insert
Proceed down the tree as you would with a findIf X is found, do nothing (or update something)Otherwise, insert X at the last spot on the path traversed
Time complexity = O(height of the tree)
(Trees) Data Structures Fall 2019 24 / 28
![Page 25: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/25.jpg)
Delete
the node is a leafI Delete it immediately
the node has one childI Adjust a pointer from the parent to bypass that node
(Trees) Data Structures Fall 2019 25 / 28
![Page 26: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/26.jpg)
Delete (Cont’d)
the node has 2 childrenI replace the key of that node with the minimum element at the right
subtreeI delete the minimum element
F Has either no child or only right child because if it has a left child,that left child would be smaller and would have been chosen. Soinvoke case 1 or 2.
Time complexity = O(height of the tree)
(Trees) Data Structures Fall 2019 26 / 28
![Page 27: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/27.jpg)
Worst Case
BST tree = new BST();for (int i = 1; i <= 8; i++)
tree.insert (i);
(Trees) Data Structures Fall 2019 27 / 28
![Page 28: Trees - 國立臺灣大學ccf.ee.ntu.edu.tw/~yen/courses/ds19F/chapter-4.pdf · Full and Complete Binary Trees A full binary tree of a given height k has 2k+1 1 nodes. Parent of node](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec5cafadfe04557bd2f238a/html5/thumbnails/28.jpg)
Better Search Trees
Prevent the degeneration of the BST :
A BST can be set up to maintain balance during updatingoperations (insertions and removals)Types of ST which maintain the optimal performance:
I AVL treesI splay treesI 2-3 (2-3-4) TreesI Red-Black treesI B-trees
(Trees) Data Structures Fall 2019 28 / 28