Download presentation
Presentation is loading. Please wait.
Published byChristopher Welch Modified over 8 years ago
1
1 Trees
2
2 Trees Trees. Binary Trees Tree Traversal
3
3 Trees
4
4 Trees
5
5 Tree Terminology A non-empty tree has a root node (e.g.node a). Every other node can be reached from the root via a unique path (e.g. a-d-f). a is the parent of nodes b and c because there is an edge going from a down to each. Moreover, b and c are children of a. dagbecf root parent of g child of a
6
6 Tree Terminology The descendant of a is (e and c), nodes that can be reached by paths from a. The ancestor of e is (a and c), nodes found on the path from e to a. Nodes (b, d, and e) are leaf nodes (they have no children). Each of the nodes a and c has at least one child and is an internal node. caebd Siblings
7
7 Trees
8
8 Binary Trees Can be implemented using arrays, structs and pointers Used in problems dealing with: Searching Hierarchy Ancestor/descendant relationship Classification
9
9 Tree Terminology Each node in the tree (except leaves) may have one or more subtrees For a tree with n nodes there are n-1 edges abdecfg
10
10 The Binary Tree A binary tree is a tree in which a parent has at most two children. It consists of a root and two disjoint subtrees (left and right). The root is at level (L = 1) and the height h = maximum level The maximum number of nodes in level L is abdecf Level 1 Level 2 Level 3 A binary tree of height h = 3 Left Right g
11
11 The Full Binary Tree A binary tree is full iff the number of nodes in level L is 2 L-1 abdecfg
12
12 The Full Binary Tree A full binary tree of height h has n nodes, where
13
13 The Balanced Tree A balanced binary tree has the property that the heights of the left and right subtrees differ at most by one level. i.e. |h L – h R | ≤ 1 A Full tree is also a balanced tree hLhL hRhR
14
14 A binary tree is Complete iff the number of Nodes at level 1 <= L <= h-1 is 2 L-1 and leaf nodes at level h occupy the leftmost positions in the tree i.e. all levels are filled except the rightmost of the last level. Complete Binary Tree Missing Leaves
15
15 Complete Binary Tree
16
16 Complete Binary Tree A complete binary tree can be efficiently implemented as an array, where a node at index i has children at indexes 2i+1 and 2i+2 and a parent at index (i-1)/2 DE BC A 1 23 4 5 ABCDE
17
17 Complete Binary Tree
18
18 A binary tree is a recursive structure e.g. it can be defined recursively as: if (not empty tree) 1. It has a root 2. It has a (Left Subtree) 3. It has a (Right Subtree) Recursive structure suggests recursive processing of trees (e.g. Traversal) Binary Tree as a Recursive Structure bc a de f
19
19 Binary Tree as a Recursive Structure b,d,ec,f a de f a,b,c,d,e,f bc Empty
20
20 2. Tree Traversal Traversal is to visit every node ( to display, process, …) exactly once It can be done recursively There are 3 different binary tree traversal orders: Pre-Order: Root is visited before its two subtrees In-Order: Root is visited in between its two subtrees Post-Order:Root is visited after its two subtrees
21
21 Pre-Order Traversal Algorithm: PreOrder ( tree ) { if ( not empty tree) { Visit (root); PreOrder (left subtree); PreOrder (right subtree); } The resulting visit order = {a} {b, d, e} {c, f } bc a de f 1 2 3 5 6 4
22
22 Pre-Order Traversal Pre-Order Traversal is also called Depth-First traversal 1 25 3467
23
23 In-Order Traversal Algorithm: InOrder ( tree ) { if ( not empty tree) { InOrder (left subtree); Visit (root); InOrder (right subtree); } The resulting visit order = {d, b, e} {a} {f, c } bc a de f 4 2 1 6 5 3
24
24 Post-Order Traversal Algorithm: PostOrder ( tree ) { if ( not empty tree) { PostOrder (left subtree); PostOrder (right subtree); Visit (root); } The resulting visit order = {d, e, b} {f, c } {a} bc a de f 6 3 1 5 4 2
25
25 Example: Expression Tree The expression A – B * C + D can be represented as a tree. In-Order traversal gives: A – B * C + D This is the infix representation Pre-Order traversal gives: + - A * B C D This is the prefix representation Post-Order traversal gives: A B C * - D + This is the postfix (RPN) representation - D + A* B C
26
26 Exercise : Assume there is a binary tree with the following traversal Preorder traversal sequence: F, B, A, D, C, E, G, I, H Inorder traversal sequence: A, B, C, D, E, F, G, H, I Can you draw the binary tree ?
27
27 Binary Search Tree :
28
28 Binary Search Tree :
29
29 Binary Search Tree :
30
30 Binary Search Tree :
31
31 Inserting in Binary Search Tree Insert (tree, new_item) if (tree is empty) insert new item as root; else if (root key matches new_item) skip insertion; (duplicate key) else if (new_item is smaller than root) insert in left sub-tree; elseinsert in right sub-tree;
32
32 Inserting in Binary Search Tree Insert: 40,20,10,50,65,45,30
33
33 Deleting from a Binary Search Tree
34
34 Deleting from a Binary Search Tree
35
35 Deleting from a Binary Search Tree
36
36 Deleting from a Binary Search Tree
37
37 Deleting from a Binary Search Tree
38
38 Deleting from a Binary Search Tree
39
39 Deleting from a Binary Search Tree
40
40 Deleting from a Binary Search Tree
41
41 Deleting from a Binary Search Tree
42
42 Deleting from a Binary Search Tree
43
43 Deleting from a Binary Search Tree
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.