Discrete Mathematics and Its Applications
Kenneth H. Rosen Chapter 8 Trees
Slides by Sylvia Sorkin, Community College of Baltimore County - Essex Campus 1
Tree
Definition 1. A tree is a connected undirected graph with no simple circuits. Theorem 1. An undirected graph is a tree if and only if there is a unique simple path between any two of its vertices.
Which graphs are trees?
a)
b)
c)
Specify a vertex as root
Then, direct each edge away from the root.
ROOT c)
Specify a root.
Then, direct each edge away from the root.
ROOT
a)
Specify a root.
Then, direct each edge away from the root.
ROOT
a)
Specify a root.
Then, direct each edge away from the root.
ROOT
a)
A directed graph called a rooted tree results.
What if a different root is chosen?
Then, direct each edge away from the root.
ROOT
a)
What if a different root is chosen?
Then, direct each edge away from the root.
ROOT
a)
What if a different root is chosen?
Then, direct each edge away from the root.
ROOT
a)
10
What if a different root is chosen?
Then, direct each edge away from the root.
ROOT
a)
A different rooted tree results.
11
Jakes Pizza Shop Tree
Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
12
A Tree Has a Root
TREE ROOT Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
13
Leaf nodes have no children
Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
LEAF NODES
Waiter Chris
Cook Max
Helper Len
14
A Tree Has Levels
LEVEL 0 Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
15
Level One
Owner Jake
LEVEL 1
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
16
Level Two
Owner Jake
Manager Brad LEVEL 2
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
17
Sibling nodes have same parent
Owner Jake SIBLINGS
Manager Brad Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
18
Sibling nodes have same parent
Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
SIBLINGS
Waiter Chris
Cook Max
Helper Len
19
A Subtree
ROOT Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
LEFT SUBTREE OF ROOT
20
Another Subtree
ROOT Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
21 RIGHT SUBTREE OF ROOT
Internal Vertex
A vertex that has children is called an internal vertex. The subtree at vertex v is the subgraph of the tree consisting of vertex v and its descendants and all edges incident to those descendants.
22
How many internal vertices?
Owner Jake
Manager Brad
Chef Carol
Waitress Joyce
Waiter Chris
Cook Max
Helper Len
23
Binary Tree
Definition 2. A rooted tree is called a binary tree if every internal vertex has no more than 2 children. The tree is called a full binary tree if every internal vertex has exactly 2 children.
24
Ordered Binary Tree
Definition 2. An ordered rooted tree is a rooted tree where the children of each internal vertex are ordered. In an ordered binary tree, the two possible children of a vertex are called the left child and the right child, if they exist.
25
Tree Properties
Theorem 2. A tree with N vertices has N-1 edges.
Theorem 5. There are at most 2 H leaves in a binary tree of height H. Corallary. If a binary tree with L leaves is full and balanced, then its height is H = log2 L .
26
An Ordered Binary Tree
Lou Hal
Ed Ken Joe Max Sue Ted
27
Parent
The parent of a non-root vertex is the unique vertex u with a directed edge from u to v.
28
What is the parent of Ed?
Lou Hal
Ed Ken Joe Max Sue Ted
29
Leaf
A vertex is called a leaf if it has no children.
30
How many leaves?
Lou Hal
Ed Ken Joe Max Sue Ted
31
Ancestors
The ancestors of a non-root vertex are all the vertices in the path from root to this vertex.
32
How many ancestors of Ken?
Lou Hal
Ed Ken Joe Max Sue Ted
33
Descendants
The descendants of vertex v are all the vertices that have v as an ancestor.
34
How many descendants of Hal?
Lou Hal
Ed Ken Joe Max Sue Ted
35
Level
The level of vertex v in a rooted tree is the length of the unique path from the root to v.
36
What is the level of Ted?
Lou Hal
Ed Ken Joe Max Sue Ted
37
Height
The height of a rooted tree is the maximum of the levels of its vertices.
38
What is the height?
Lou Hal
Ed Ken Joe Max Sue Ted
39
Balanced
A rooted binary tree of height H is called balanced if all its leaves are at levels H or H-1.
40
Is this binary tree balanced?
Lou Hal
Ed Ken Joe Max Sue Ted
41
Searching takes time . . .
So the goal in computer programs is to find any stored item efficiently when all stored items are ordered. A Binary Search Tree can be used to store items in its vertices. It enables efficient searches.
42
A Binary Search Tree (BST) is . . .
A special kind of binary tree in which: 1. Each vertex contains a distinct key value, 2. The key values in the tree can be compared using greater than and less than, and 3. The key value of each vertex in the tree is less than every key value in its right subtree, and greater than every key value in its left subtree.
Shape of a binary search tree . . .
Depends on its key values and their order of insertion. Insert the elements J E F T A in that order. The first value to be inserted is put into the root. J
44
Inserting E into the BST
Thereafter, each value to be inserted begins by comparing itself to the value in the root, moving left it is less, or moving right if it is greater. This continues at each level until it can be inserted as a new leaf. J
E
45
Inserting F into the BST
Begin by comparing F to the value in the root, moving
left it is less, or moving right if it is greater. This continues until it can be inserted as a leaf. J E F
46
Inserting T into the BST
Begin by comparing T to the value in the root,
moving left it is less, or moving right if it is greater. This continues until it can be inserted as a leaf. J E F T
47
Inserting A into the BST
Begin by comparing A to the value in the root,
moving left it is less, or moving right if it is greater. This continues until it can be inserted as a leaf. J E A F T
48
What binary search tree . . .
is obtained by inserting the elements A E F J T A in that order?
49
Binary search tree . . .
obtained by inserting the elements A E F J T in that order.
A
E F J T
50
Another binary search tree
J E A H K
T M
P
Add nodes containing these values in this order:
D B L Q S V Z
51
Is F in the binary search tree?
J E A H M K P
T
V
D B
Z
Q S
52
Traversal Algorithms
A traversal algorithm is a procedure for systematically visiting every vertex of an ordered binary tree.
Tree traversals are defined recursively.
Three traversals are named: preorder, inorder, postorder.
53
PREORDER Traversal Algorithm
Let T be an ordered binary tree with root r. If T has only r, then r is the preorder traversal.
Otherwise, suppose T1, T2 are the left and right subtrees at r. The preorder traversal begins by visiting r. Then traverses T1 in preorder, then traverses T2 in preorder.
54
Preorder Traversal: J E A H T M Y
Visit first. ROOT J
E
A H M
T Y
Visit left subtree second
Visit right subtree last
55
INORDER Traversal Algorithm
Let T be an ordered binary tree with root r. If T has only r, then r is the inorder traversal.
Otherwise, suppose T1, T2 are the left and right subtrees at r. The inorder traversal begins by traversing T1 in inorder. Then visits r, then traverses T2 in inorder.
56
Inorder Traversal: A E H J M T Y
Visit second ROOT J
E
A H M
T Y
Visit left subtree first
Visit right subtree last
57
POSTORDER Traversal Algorithm
Let T be an ordered binary tree with root r. If T has only r, then r is the postorder traversal.
Otherwise, suppose T1, T2 are the left and right subtrees at r. The postorder traversal begins by traversing T1 in postorder. Then traverses T2 in postorder, then ends by visiting r.
58
Postorder Traversal: A H E M Y T J
Visit last ROOT J
E
A H M
T Y
Visit left subtree first
Visit right subtree second
59
A Binary Expression Tree
ROOT
- 8
INORDER TRAVERSAL: PREORDER TRAVERSAL: POSTORDER TRAVERSAL:
5
8 - 5 - 8 5 8 5 60
has value 3
A Binary Expression Tree is . . .
A special kind of binary tree in which: 1. Each leaf node contains a single operand, 2. Each nonleaf node contains a single binary operator, and 3. The left and right subtrees of an operator node represent subexpressions that must be evaluated before applying the operator at the root of the subtree.
61
A Binary Expression Tree
*
What value does it have? ( 4 + 2 ) * 3 = 18
62
A Binary Expression Tree
*
What infix, prefix, postfix expressions does it represent?
63
A Binary Expression Tree
*
4
Infix: Prefix: Postfix: ((4+2)*3) * + 4 2 3 4 2 + 3 *
evaluate from right evaluate from left
64
Levels Indicate Precedence
When a binary expression tree is used to represent an expression, the levels of the nodes in the tree indicate their relative precedence of evaluation. Operations at higher levels of the tree are evaluated later than those below them. The operation at the root is always the last operation performed.
65
Evaluate this binary expression tree
*
5
4
+ 2
What infix, prefix, postfix expressions does it represent?
66
A binary expression tree
*
- 8 5 4
Infix: Prefix: Postfix: ((8-5)*((4+2)/3)) *-85 /+423
3 2
8 5 - 4 2 + 3 / * has operators in order used
67
A binary expression tree
*
- 8 5 4
Infix: Prefix: Postfix: ((8-5)*((4+2)/3)) *-85 /+423 85- 42+3/*
3 2
evaluate from right evaluate from left
68
Inorder Traversal: (A + H) / (M - Y)
Print second ROOT /
+
A H M
- Y
Print left subtree first
Print right subtree last
69
Preorder Traversal: / + A H - M Y
Print first ROOT /
+
A H M
- Y
Print left subtree second
Print right subtree last
70
Postorder Traversal: A H + M Y - /
Print last ROOT /
+
A H M
- Y
Print left subtree first
Print right subtree second
71
ACKNOWLEDGMENT:
This project was supported in part by the National Science Foundation under grant DUE-ATE 9950056.
72