You are on page 1of 47

CHAPTER 4 TREES

BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS

SITI ZANARIAH SATARI FIST/FSKKP UMP I0910

CHAPTER 4 TREES

CONTENT

4.1 4.2 4.3 4.4 4.5 4.6

Introduction to Trees Application of Trees Tree Traversal Trees and Sorting (Data structure) Spanning Trees Minimum Spanning Trees

4.1 INTRODUCTION TO TREES


Define and recognize a tree Define and recognize a rooted tree
CHAPTER 4 TREES

Define and recognize a m-ary tree

4.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

e
NOT A TREE

e
A TREE

e
NOT A TREE

4.1 INTRODUCTION TO TREES

EXERCISE 4.1
1. Which of the following graphs are trees?
a b c a b

e
FIGURE 1

d
FIGURE 2

a c d e
FIGURE 3

v2

v1

v3

v5
FIGURE 4

v4

4.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

f d a c
A TREE

g b

a c d b e f a

e d g
A TREE with root c

e
f

A TREE with root a

4.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
b c
EXAMPLES

a g h

Height The maximum level of all the vertices The height of this tree is 3.

4.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
d
EXAMPLES

a b c g h

Internal Vertices vertices that have children The internal vertices are a, b, c, g, h and j

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.

4.1 INTRODUCTION TO TREES

EXERCISE 4.1
2. Answer these questions about the rooted tree illustrated.
a) Which vertex is the root? b) Which vertices are internal? c) Which vertices are leaves? d) Which vertices are children of g? a b c e f g h o n q p i d e) Find a subgraph. f) Find the level of each vertex. g) What is the height of this tree? h) Is this tree a balanced tree? e) Which vertex is the parent of o? f) Which vertices are siblings of e? g) Which vertices are ancestors of m? h) Which vertices are descendants of d?

k l

4.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

a b c d e a

a b c d f f g e
A full 4-ary TREE

b
g h i j k l m f

d g

A 3-ary TREE

A full binary TREE

4.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

m 1 n 1 n 1 i. n vertices has i internal vertices and l m m leaves.


ii. i internal vertices has n mi 1 vertices and l m 1 i 1 leaves. ml 1 l 1 n iii. l leaves has vertices and i internal vertices. m 1 m 1
h THEOREM 3: There are at most m leaves in an m-ary tree of height h.

4.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

4.1 INTRODUCTION TO TREES

EXERCISE 4.1
3. 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?

4.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.

4.2 APPLICATION OF TREES


Introduce Binary Search Trees Introduce Decision Trees
CHAPTER 4 TREES

Introduce Game Trees

4.2 APPLICATION OF TREES

Binary Search Trees


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.
EXAMPLE Binary search tree for the words mathematics, physics, geography, zoology, meteorology, geology, psychology, and chemistry using alphabetical order mathematics
geography chemistry physics

geology metereology psycology

zoology

4.2 APPLICATION OF TREES

Decision Trees
A rooted tree in which each internal vertex corresponds to a decision, with a subtree at these vertices for each possible outcome of decision.
a>c EXAMPLE

A Decision tree that orders the elements of the list a, b, c


a:b a>b a:c a<c c>a>b b>c a:c a<b b:c

b<c c>b>a

The possible solutions of the problem correspond to the paths to the leaves of this rooted tree.

b:c b>c

b<c a>c>b

a>c

a<c b>c>a

a>b>c

b>a>c

4.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.

4.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.

4.3 TREE TRAVERSAL


Determine preorder traversal, inorder traversal and postorder traversal of an ordered rooted tree. Determine the infix, prefix, and postfix form of an expression.

CHAPTER 4 TREES

4.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 < 1 < 1.1 < 1.2 < 1.2.1 < 1.3 < 2 < 3 < 3.1 < 3.1.1 < 3.1.2 < 3.1.2.1 < 3.1.2.2 < 4 < 4.1

Tree traversal algorithm Preorder, inorder and postorder traversal

4.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.
r STEP 1 Visit r TIPS Preorder Traversal: Visit root, visit subtrees left to right

T1

T2

Tn
STEP n+1 Visit Tn in preorder

STEP 2 STEP 3 Visit T1 in preorder Visit T2 in preorder

4.3 TREE TRAVERSAL

EXAMPLE: Preorder Traversal


T

b c e j n k o p b e j n k o p f l c

a b

f k

h i


m
ITERATION 2

f
l

h
m

j
n a b e j

o p

k f c d g l mh i


o p
ITERATION 3

g h
m

ab e j k n opf c dgl mh i


ITERATION 4

ITERATION 1

The preorder traversal of T

4.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.
r STEP 2 Visit r TIPS Inorder Traversal: Visit leftmost subtree, Visit root, Visit other subtrees left to right.

T1
STEP 1 Visit T1 in inorder

T2
STEP 3 Visit T2 in inorder

Tn
STEP n+1 Visit Tn in inorder

4.3 TREE TRAVERSAL

EXAMPLE: Inorder Traversal


T

b c e j n b e f k n o p l k o p a c

e b f k n j e o p

a c

d h i


m
ITERATION 2

f
l

h
m


d n

k b f a c l g md h i


ITERATION 3

g h
m

o p

j e n k opb f ac l g m d h i


ITERATION 4

ITERATION 1

The inorder traversal of T

4.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.
r STEP n+1 Visit r TIPS Postorder Traversal: Visit subtrees left to right, Visit root.

T1

T2

Tn

STEP 1 STEP 2 STEP n Visit T1 in postorder Visit T2 in postorder Visit Tn in postorder

4.3 TREE TRAVERSAL

EXAMPLE: Postorder Traversal


T

b c e j n b e j n k o p f l k o p c

f k

b c

h i d a


m
ITERATION 2

f
l

h
m

j
n j

o p k e

f b c l mg h i da


ITERATION 3

g h
m

o p

j n o pk e f bc l mg hi d a


ITERATION 4

ITERATION 1

The preorder traversal of T

4.3 TREE TRAVERSAL

EXERCISE 4.3
1. Determine the order in which a preorder, inorder, and postorder traversal visits the vertices of the following rooted tree.
a b c e f g h m o n q r s d i d a

b
c

f
h i

g
j

k l

FIGURE 1

FIGURE 2

4.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 ((x+y)2)+((x-4)/3) + + x y 2 x _ 4 / 3

4.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 ((x+y)2)+((x-4)/3) is x + y 2 + x 4 / 3 or ((x+y)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 ((x+y)2)+((x-4)/3) is ++xy2/-x43 We obtain the Postfix form of an expression when we traverse its rooted tree in Postorder. The postfix form for expression ((x+y)2)+((x-4)/3) is xy+2x43/+

4.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

+-*235/234
23=8

+-*2352
2*3=6

+-*235/84
8/4 =2

+-652
6 5 =1

+-*2352
2*3=6

+12
1+2=3

4.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

723*-493/+
2*3=6

1493/+
14=1

76-493/+
7-6=1

193/+
9/3 = 3

1493/+
14=1

13+
1+3=4

4.3 TREE TRAVERSAL

EXERCISE 4.3
2. Represent the following expression using binary trees. Then write these expression in infix, prefix and postfix notations. a. ((x+2)3)*(y (3+x)) 5 b. (AB) (A(B A))

3. What is the value of these expression in prefix expression? a. + 3 2 2 3 / 6 4 2 b. * + 3 + 3 3 + 3 3 3 4. What is the value of these expression in postfix expression? a. 3 2 * 2 5 3 8 4 / * b. 9 3 / 5 + 7 2 *

4.3 TREE TRAVERSAL

EXERCISE 4.3 : EXTRA


PAGE : 722, 723 and 724 Rosen K.H., Discrete Mathematics & Its Applications, (Seventh Edition), McGraw-Hill, 2007.

4.5 SPANNING TREES


Find spanning trees of a simple graph
CHAPTER 4 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 e e f g f g
Not Spanning tree

4.5 SPANNING TREES

d
Spanning tree

A simple graph

4.5 SPANNING TREES

EXERCISE 4.5
1. Find a spanning tree for the following graphs.
b

a
c

b e f

h
e
FIGURE 1

g
c b

FIGURE 2

b a c
FIGURE 3 FIGURE 4

e d

4.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.

4.6 MINIMUM SPANNING TREES


Find minimum spanning tree using Prims algorithm Find minimum spanning tree using Kruskals algorithm
CHAPTER 4 TREES

4.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

4.6 MINIMUM SPANNING TREES

Prims Algorithm
1. Chose an edge with the least weight. 2. Include it in spanning tree, T. 3. Select an edge of least weight that is incident with a vertex of an edge in T. 4. If it does not create a cycle (simple circuit) with the edges in T, then include it in T; otherwise discard it. 5. 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.

4.6 MINIMUM SPANNING TREES

EXAMPLE: Prims Algorithm


c 13 13 10

CHOICE
d

EDGE

WEIGHT

b
7

{ a, b }

SPANNING TREE b
7

16

12 15 10 11 e 12
FIGURE 1

a 2 { a, d } 10 b
7 10 d 10 11 e 12 10 11 d d

The minimum spanning tree is given by: c

{b, e}

11

a b
7

b
7 10 11

12

a 4 {e, c} 12 b
c

Total weight = 40

4.6 MINIMUM SPANNING TREES

Kruskals Algorithm
1. 2. 3. 4. 5. 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. 6. 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.

4.6 MINIMUM SPANNING TREES

EXAMPLE: Kruskals Algorithm


c 13 13 10

CHOICE
d

EDGE

WEIGHT

b
7

{ a, b }

SPANNING TREE b
7

16

12 15 10 11 e 12
FIGURE 1

a 2 { b, d } 10 b
7 d 10

The minimum spanning tree is given by: c

{b, e}

11

a b
10 7

d 11

a
d

e d 12

b
7

10

{e, c}

12 b

c
10

12 e

11

Total weight = 40

11

4.6 MINIMUM SPANNING TREES

EXERCISE 4.6
1. Construct a minimum spanning tree for each of the following connected weighted graphs using Prims and Kruskals algorithm.
c 3 2 11

a
1 e 2 1 8
3 f 5 1

b f
7

2 5

e
3

6
8 7

1
6

b
1 d

g 1 c

FIGURE 1

FIGURE 2

4.6 MINIMUM SPANNING TREES

EXERCISE 4.6 : EXTRA


PAGE : 742 and 743 Rosen K.H., Discrete Mathematics & Its Applications, (Seventh Edition), McGraw-Hill, 2007.

CHAPTER 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

You might also like