Title: BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
1BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
SITI ZANARIAH SATARI FIST/FSKKP UMP I0910
2CHAPTER 4 TREES
- 4.1 Introduction to Trees
- 4.2 Application of Trees
- 4.3 Tree Traversal
- 4.4 Trees and Sorting (Data structure)
- 4.5 Spanning Trees
- 4.6 Minimum Spanning
- Trees
34.1 INTRODUCTION TO TREES
CHAPTER 4 TREES
- Define and recognize a tree
- Define and recognize a rooted tree
- Define and recognize a m-ary tree
44.1 INTRODUCTION TO TREES
A Tree
- A tree is a connected undirected graph with no
simple circuit. - An undirected graph is a tree if and only if
there is a unique simple path between any two of
its vertices. - THEOREM A tree with n vertices has n 1 edges.
EXAMPLES
a
b
c
a
b
c
a
b
c
d
e
f
d
e
f
d
e
f
NOT A TREE
NOT A TREE
A TREE
54.1 INTRODUCTION TO TREES
EXERCISE 4.1
- Which of the following graphs are trees?
a
b
c
a
b
c
d
e
d
e
FIGURE 1
FIGURE 2
a
v2
v1
v3
c
d
e
v5
b
v4
FIGURE 3
FIGURE 4
64.1 INTRODUCTION TO TREES
A Rooted Tree
- A rooted tree is a tree in which one vertex has
been designated as the root and every edge is
directed away from the root. - Different choice of root produce different rooted
tree
EXAMPLES
c
f
a
g
a
b
d
d
c
b
e
b
d
a
e
g
e
f
g
f
c
A TREE with root c
A TREE with root a
A TREE
74.1 INTRODUCTION TO TREES
Properties of Rooted Trees
- Parent A vertex other than root is a parent if
it has one or more children - The parent of c is b
- Children If A is a vertex with successors B and
C, then B and C are the children of A. - The children of a is b, f and g
- Siblings Children with the same parent vertex.
- h, i and j are siblings
- Level the length of the unique path from the
root to a vertex - Vertex a is at level 0
- Vertices d and e is at level 3
EXAMPLES
a
b
g
f
j
c
h
i
e
d
k
l
m
- Height The maximum level of all the vertices
- The height of this tree is 3.
84.1 INTRODUCTION TO TREES
Properties of Rooted Trees
- Ancestor of a vertex (v) the vertices in the
path from the root to this vertex excluding this
vertex. - The ancestors of e are c, b and a
- Descendent of a vertex (v) vertices that have v
as ancestor. - The descendants of b are c, d and e
- Leaf A vertex with no children
- The leaves are d, e, f, i, k, l and m
- Internal Vertices vertices that have children
- The internal vertices are a, b, c, g, h and j
EXAMPLES
a
b
g
f
j
c
h
i
e
d
k
l
m
A subtree rooted at g
- Subtree A subgraph of the tree consisting of
a root and its descendent and all edges incident
to these descendent.
94.1 INTRODUCTION TO TREES
EXERCISE 4.1
- Answer these questions about the rooted tree
illustrated.
- Which vertex is the root?
- Which vertices are internal?
- Which vertices are leaves?
- Which vertices are children of g?
- Which vertex is the parent of o?
- Which vertices are siblings of e?
- Which vertices are ancestors of m?
- Which vertices are descendants of d?
a
b
d
- Find a subgraph.
- Find the level of each vertex.
- What is the height of this tree?
- Is this tree a balanced tree?
c
e
g
f
h
i
o
j
k
l
m
n
p
r
q
s
104.1 INTRODUCTION TO TREES
m-ary Tree
- A rooted tree is called an m-ary tree if every
vertex has no more than m children. - The tree is called a full m-ary tree if every
internal vertex has exactly m children. - A rooted m-ary tree is balanced if all leaves are
at levels h or h-1.
EXAMPLES
c
a
a
a
e
b
c
d
e
b
d
c
b
d
f
g
k
j
h
i
l
m
e
g
f
g
f
A full binary TREE
A 3-ary TREE
A full 4-ary TREE
114.1 INTRODUCTION TO TREES
m-ary Tree
- THEOREM 1 A full m-ary tree with i internal
vertices contains n mi 1 vertices - THEOREM 2 A full m-ary tree with
- n vertices has internal
vertices and leaves. - i internal vertices has
vertices and leaves. - l leaves has vertices and
internal vertices. - THEOREM 3 There are at most leaves in
an m-ary tree of height h.
124.1 INTRODUCTION TO TREES
EXAMPLE m-ary tree
- Suppose that someone starts a chain letter. Each
person who receives the letter is asked to send
it on to four other people. Some people do this,
but others do not send any letters.
-
- How many people have seen the letter, including
the first person, if no one receives more than
one letter and if the chain letter ends after
there have been 100 people, who read it but did
not send it out?
Solution
Send letter to four other people ? 4-ary tree ? m
4 People send out the letter ? internal
vertices ? i People do not send out the letter ?
leaves ? l 100 By theorem 2 (iii) Number of
people have seen this letter ? n (4100 1) /
(4 1) 133 Number of people send out the
letter ? i 133 100 33
134.1 INTRODUCTION TO TREES
EXERCISE 4.1
- A chain letter starts with a person sending a
letter out to 10 others. Each person is asked to
send the letter out to 10 others, and each letter
contains a list of previous six people in the
chain. Unless there are fewer than six names in
the list, each person sends one dollar to the
first person from the list, moves up each of
other five names one position, and insert his
names at the end of this list. -
- If no person breaks the chain and no one
receives more than one letter, how much money
will a person in the chain ultimately receive?
144.1 INTRODUCTION TO TREES
EXERCISE 4.1 EXTRA
- PAGE 693, 694 and 695
- Rosen K.H., Discrete Mathematics Its
Applications, (Seventh Edition), McGraw-Hill,
2007.
15CHAPTER 4 TREES
- Introduce Binary Search Trees
- Introduce Decision Trees
- Introduce Game Trees
164.2 APPLICATION OF TREES
Binary Search Trees
EXAMPLE
- A binary tree in which each child of a vertex is
designated as a right or left child - No vertex has more than one right child or left
child - Each vertex is labeled with a key
- Vertices are assigned keys so that the key of a
vertex is both larger than the keys of all
vertices in its left subtree and smaller than the
keys of all vertices in its right subtree.
Binary search tree for the words mathematics,
physics, geography, zoology, meteorology,
geology, psychology, and chemistry using
alphabetical order
mathematics
physics
geography
chemistry
geology
zoology
metereology
psycology
174.2 APPLICATION OF TREES
Decision Trees
EXAMPLE
- A rooted tree in which each internal vertex
corresponds to a decision, with a subtree at
these vertices for each possible outcome of
decision. - The possible solutions of the problem correspond
to the paths to the leaves of this rooted tree.
A Decision tree that orders the elements of the
list a, b, c
a b
a lt b
a gt b
a c
b c
a lt c
b lt c
a gt c
b gt c
b c
c gt a gt b
a c
c gt b gt a
b lt c
a lt c
b gt c
a gt c
a gt c gt b
a gt b gt c
b gt c gt a
b gt a gt c
184.2 APPLICATION OF TREES
Game Trees
- Use trees to analyze certain types of games
- Vertices represent the positions can be in as it
progresses - Edges represent legal moves between this
position - Games tree is infinite if the games they
represent never end
EXAMPLE
A Game tree that represents the first two level
of the tic-tac-toe game.
194.2 APPLICATION OF TREES
EXERCISE 4.2 EXTRA
- PAGE 708, 709 and 710
- Rosen K.H., Discrete Mathematics Its
Applications, (Seventh Edition), McGraw-Hill,
2007.
20CHAPTER 4 TREES
- Determine preorder traversal, inorder traversal
and postorder traversal of an ordered rooted
tree. - Determine the infix, prefix, and postfix form of
an expression.
214.3 TREE TRAVERSAL
Tree Traversal
- Ordered trees are often used to restore
data/info. - Tree traversal is a procedure for systematically
visiting each vertex of an ordered rooted tree to
access data. - If the tree is label by Universal Address System
we can totally order the vertices using
lexicographic ordering - Example 0 lt 1 lt 1.1 lt 1.2 lt 1.2.1 lt 1.3 lt 2 lt 3
lt 3.1 lt - 3.1.1 lt 3.1.2 lt 3.1.2.1 lt
3.1.2.2 lt 4 lt 4.1 - Tree traversal algorithm
- Preorder, inorder and postorder traversal
224.3 TREE TRAVERSAL
Preorder Traversal
- Let T be an ordered rooted tree with root r.
- If T consists only of r, then r is the preorder
traversal of T. - If T1, T2, , Tn are subtrees at r from left to
right in T, then the preorder traversal begins by
visiting r, continues by traversing T1 in
preorder, then T2 in preorder, and so on until Tn
is traversed in preorder.
STEP 1 Visit r
r
TIPS Preorder Traversal Visit root,
visit subtrees left to right
T3
T2
T1
STEP 2 Visit T1 in
preorder
STEP n1 Visit Tn in
preorder
STEP 3 Visit T2 in
preorder
234.3 TREE TRAVERSAL
EXAMPLE Preorder Traversal
a
g
e
a
c
b
d
f
h
i
d
T
b
c
e
k
f
m
h
g
l
j
i
k
j
m
l
n
ITERATION 2
p
o
n
p
o
a
c
b
d
f
h
i
e
j
l
m
g
k
d
b
a
c
n
ITERATION 3
p
o
e
f
h
g
i
a
b
e
j
k
n
o
p
c
d
h
i
l
m
f
g
k
j
m
l
ITERATION 4
n
p
o
ITERATION 1
The preorder traversal of T
244.3 TREE TRAVERSAL
Inorder Traversal
- Let T be an ordered rooted tree with root r.
- If T consists only of r, then r is the inorder
traversal of T. - If T1, T2, , Tn are subtrees at r from left to
right in T, then the inorder traversal begins by
traversing T1 in inorder, then visiting r,
continues by traversing T2 in inorder, and so on
until Tn is traversed in inorder.
STEP 2 Visit r
r
TIPS Inorder Traversal Visit leftmost
subtree, Visit root, Visit other subtrees left to
right.
T3
T2
T1
STEP 1 Visit T1 in
inorder
STEP n1 Visit Tn in
inorder
STEP 3 Visit T2 in
inorder
254.3 TREE TRAVERSAL
EXAMPLE Inorder Traversal
a
g
e
f
c
b
d
a
h
i
d
T
b
c
e
k
f
m
h
g
l
j
i
k
j
m
l
n
ITERATION 2
p
o
n
p
o
a
b
f
e
j
c
l
g
h
i
m
d
k
d
b
a
c
n
ITERATION 3
p
o
e
f
h
g
i
j
e
n
k
o
p
f
a
g
m
h
i
d
b
c
l
k
j
m
l
ITERATION 4
n
p
o
ITERATION 1
The inorder traversal of T
264.3 TREE TRAVERSAL
Postorder Traversal
- Let T be an ordered rooted tree with root r.
- If T consists only of r, then r is the postorder
traversal of T. - If T1, T2, , Tn are subtrees at r from left to
right in T, then the preorder traversal begins by
traversing T1 in postorder, then T2 in postorder,
and so on until Tn is traversed in postorder and
ends by visiting r.
STEP n1 Visit r
r
TIPS Postorder Traversal Visit subtrees
left to right, Visit root.
T3
T2
T1
STEP 1 Visit T1 in
postorder
STEP n Visit Tn in
postorder
STEP 2 Visit T2 in
postorder
274.3 TREE TRAVERSAL
EXAMPLE Postorder Traversal
a
g
e
a
c
b
d
f
h
i
d
T
b
c
e
k
f
m
h
g
l
j
i
k
j
m
l
n
ITERATION 2
p
o
n
p
o
a
c
b
d
f
h
i
e
j
l
m
g
k
d
b
a
c
n
ITERATION 3
p
o
e
f
h
g
i
j
n
o
p
k
e
f
b
l
m
d
a
h
i
c
g
k
j
m
l
ITERATION 4
n
p
o
ITERATION 1
The preorder traversal of T
284.3 TREE TRAVERSAL
EXERCISE 4.3
- Determine the order in which a preorder,
inorder, and postorder traversal visits the
vertices of the following rooted tree.
a
a
b
b
d
g
f
c
e
g
j
f
c
h
h
i
i
j
o
k
l
e
d
m
k
l
p
m
n
r
q
s
FIGURE 1
FIGURE 2
294.3 TREE TRAVERSAL
Represent Expression by Rooted Tree
- We can represent complicated expression
(propositions, sets, arithmetic) using ordered
rooted trees. - EXAMPLE A binary tree representing
((xy)?2)((x-4)/3)
?
/
_
2
3
x
y
x
4
304.3 TREE TRAVERSAL
Infix, Prefix Postfix Notation
- We obtain the Infix form of an expression when we
traverse its rooted tree in Inorder. - The infix form for expression ((xy)?2)((x-4)/3)
is - x y ?2 x 4 / 3 or ((xy)?2)((x-4)/3)
- We obtain the Prefix form of an expression when
we traverse its rooted tree in Preorder. - The prefix form for expression ((xy)?2)((x-4)/3)
is ? x y 2 / - x 4 3 - We obtain the Postfix form of an expression when
we traverse its rooted tree in Postorder. - The postfix form for expression
((xy)?2)((x-4)/3) is x y 2 ? x 4 3 /
314.3 TREE TRAVERSAL
Evaluating Prefix Expression
- Working right to left and performing operations
using the operands on the right. - EXAMPLE
- The value of the prefix expression - 2 3 5 /
? 2 3 4 is 3
- 2 3 5 / ? 2 3 4
- 2 3 5 2
2 ? 3 8
2 3 6
- 6 5 2
- 2 3 5 / 8 4
8/4 2
6 5 1
- 2 3 5 2
1 2
2 3 6
1 2 3
324.3 TREE TRAVERSAL
Evaluating Postfix Expression
- Working left to right and performing operations
using the operands on the left. - EXAMPLE
- The value of the postfix expression 7 2 3 - 4
? 9 3 / is 4
7 2 3 - 4 ? 9 3 /
1 4 ? 9 3 /
1 ? 4 1
2 3 6
7 6 - 4 ? 9 3 /
1 9 3 /
7 - 6 1
9/3 3
1 4 ? 9 3 /
1 3
1 ? 4 1
1 3 4
334.3 TREE TRAVERSAL
EXERCISE 4.3
- Represent the following expression using binary
trees. Then write these expression in infix,
prefix and postfix notations. - ((x2)?3)(y (3x)) 5
- (AnB) (A?(B A))
- What is the value of these expression in prefix
expression? - ?3 2 ? 2 3 / 6 4 2
- 3 3 ? 3 3 3 3
- What is the value of these expression in postfix
expression? - 3 2 2 ? 5 3 8 4 /
- 9 3 / 5 7 2
344.3 TREE TRAVERSAL
EXERCISE 4.3 EXTRA
- PAGE 722, 723 and 724
- Rosen K.H., Discrete Mathematics Its
Applications, (Seventh Edition), McGraw-Hill,
2007.
35CHAPTER 4 TREES
- Find spanning trees of a simple graph
364.5 SPANNING TREES
Spanning Trees
- Let G be a simple graph. A spanning tree of G is
a subgraph of G that is a tree containing every
vertex of G. - A simple graph is connected if and only if it has
a spanning tree. - Applied in IP multitasking.
a
b
c
d
a
b
c
d
Not Spanning tree
e
f
g
a
b
c
d
e
f
g
Spanning tree
A simple graph
e
f
g
374.5 SPANNING TREES
EXERCISE 4.5
- Find a spanning tree for the following graphs.
b
b
a
f
e
c
a
g
h
d
e
c
d
FIGURE 1
FIGURE 2
b
b
a
a
e
c
c
d
d
FIGURE 3
FIGURE 4
384.5 SPANNING TREES
EXERCISE 4.5 EXTRA
- PAGE 734, 735, 736 and 737
- Rosen K.H., Discrete Mathematics Its
Applications, (Seventh Edition), McGraw-Hill,
2007.
39CHAPTER 4 TREES
- 4.6 MINIMUM SPANNING TREES
- Find minimum spanning tree using Prims algorithm
- Find minimum spanning tree using Kruskals
algorithm
404.6 MINIMUM SPANNING TREES
Minimum Spanning Trees
- A minimum spanning tree in a connected weighted
graph is a spanning tree that has the smallest
possible sum of weights of it edges. - Two algorithms can be used
- Prims Algorithm
- Robert Prim, 1957
- Kruskals Algorithm
- Joseph Kruskal, 1956
414.6 MINIMUM SPANNING TREES
Prims Algorithm
- Chose an edge with the least weight.
- Include it in spanning tree, T.
- Select an edge of least weight that is incident
with a vertex of an edge in T. - If it does not create a cycle (simple circuit)
with the edges in T, then include it in T
otherwise discard it. - Repeat STEPS 3 and 4 until T contains n-1 edges.
- There may be more than one minimum spanning tree
for a given connected weighted simple graph. - If there are two edges with similar smallest
weight, chose either one.
424.6 MINIMUM SPANNING TREES
EXAMPLE Prims Algorithm
c
13
13
b
10
d
b
16
7
15
12
7
a
11
10
a
d
b
e
12
7
10
FIGURE 1
a
The minimum spanning tree is given by
d
b
7
10
c
11
a
e
d
12
b
c
d
12
b
7
10
11
e
a
7
10
11
e
a
Total weight 40
434.6 MINIMUM SPANNING TREES
Kruskals Algorithm
- Arrange the edges in G in increasing order.
- Chose an edge with the minimum weight.
- Include it in spanning tree, T.
- Add an edge of least weight to T.
- If it does not create a cycle (simple circuit)
with the edges in T, then include it in T
otherwise discard it. - Repeat STEPS 4 and 5 until T contains n-1 edges.
- There may be more than one minimum spanning tree
for a given connected weighted simple graph. - If there are two edges with similar smallest
weight, chose either one.
444.6 MINIMUM SPANNING TREES
EXAMPLE Kruskals Algorithm
c
13
13
b
10
d
b
16
7
15
12
7
a
11
10
a
b
d
e
12
10
7
FIGURE 1
a
The minimum spanning tree is given by
b
d
10
7
c
11
a
e
b
d
c
10
12
b
d
7
10
11
12
e
a
7
11
e
a
Total weight 40
454.6 MINIMUM SPANNING TREES
EXERCISE 4.6
- Construct a minimum spanning tree for each of the
following connected weighted graphs using Prims
and Kruskals algorithm.
b
a
8
c
f
3
11
6
1
1
2
e
1
2
8
6
3
5
7
b
e
a
f
8
1
2
1
1
h
g
3
5
c
d
7
d
FIGURE 1
FIGURE 2
464.6 MINIMUM SPANNING TREES
EXERCISE 4.6 EXTRA
- PAGE 742 and 743
- Rosen K.H., Discrete Mathematics Its
Applications, (Seventh Edition), McGraw-Hill,
2007.
47CHAPTER 4 TREES
- Tree is a connected undirected graph with no
simple circuits - Trees have been employed to solve problems in a
wide variety of disciplines.
SUMMARY
What NEXT? Chapter 5
Modeling Computation
THATS ALL THANK YOU