section 10.1 introduction to trees these class notes are based on material from our textbook,...

100
Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth H. Rosen, published by McGraw Hill, Boston, MA, 2006. They are intended for classroom use only and are not a substitute for reading the textbook. Chapter 10

Upload: molly-kelley

Post on 31-Dec-2015

230 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Section 10.1Introduction to Trees

These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6th ed., by Kenneth H. Rosen, published by McGraw Hill, Boston, MA, 2006. They are intended for classroom use only and are not a substitute for reading the textbook.

Chapter 10

Page 2: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree

• A tree is a connected undirected graph with– No simple circuits– No multiple edges– No loops

• An undirected graph is a tree if and only if there is a unique simple path between any two of its vertices.

Page 3: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Which graphs are trees?

a b

c d

e f

a b

c

d

e f

a b

c d

e f

a b

c

d

e f

YES YES NO NO

Page 4: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Forest

• What if there are no simple circuits but the graph is not connected?

• Each of the connected components is a tree

• The collection is called a forest.

Page 5: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Rooted Tree

• Specify a vertex as root, then direct each edge away from the root. The resulting tree is called a rooted tree.

Root

Page 6: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Roota b c

d e fa

b

cd e f

a

b

c

d

e

f

Page 7: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

What if a different root is chosen?

A different rooted tree results.

Roota b c

d e f

a

b c

d e f

a

b c

d

e f

a

b

c

d

e

f

Page 8: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology

• If v is a vertex of tree T other than the root, the parent of v is the unique vertex u such that there is a directed edge from u to v.

• When u is the parent of v, v is called the child of u.

• If two vertices share the same parent, then they are called siblings.

Page 9: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Root

Page 10: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Siblings

Page 11: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology (Cont.)

• The ancestors of a vertex other than the root are the vertices in the path from the root to this vertex, excluding the vertex itself and including the root.

• The descendants of a vertex v are those vertices that have v as an ancestor.

Page 12: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Ancestors of k

Page 13: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

a

b c d

e f g h

i j k l m

Example

Descendants of d

Page 14: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology (Cont.)

• A vertex with no children is called a leaf.

• Vertices with children are called internal vertices.

Page 15: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Leaves

Page 16: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Internal vertices

Page 17: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology (Cont.)

• If a is a vertex in a tree, the subtree with a as its root is:– the subgraph of the tree consisting of a

and its descendants, and – all edges incident to these descendants.

Page 18: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Subtree at dSubtree at b

Page 19: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology (Cont.)

• A rooted tree is called an m-ary tree if every internal vertex has no more than m children.

• A tree is called a full m-ary tree if every internal vertex has exactly m children.

• An m-ary tree with m 2 is called a binary tree.

Page 20: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

• What is the arity of this tree?

• Is this a full m-ary tree?-------------------

• This is a 2-ary, or binary, tree.

• Yes, this is a full binary tree, since every internal vertex has exactly 2 children.

Page 21: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

• What is the arity of this tree?

• Is this a full m-ary tree?

--------• This is a 3-ary tree.• Yes, this is a full 3-

ary tree, since every internal vertex has exactly 3 children.

Page 22: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

• What is the arity of this tree?• Is this a full m-ary tree?

-------

• This is a full 5-ary tree.

Page 23: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

• What is the arity of this tree?• Is this a full m-ary tree?

Some internal nodes have 2 children, but some have 3, so this is a 3-ary tree.

It is not a full-3-ary tree, since one internal node has only 2 children.

Page 24: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Ordered Rooted Tree

• An ordered rooted tree is one where the children of each internal vertex are ordered.

• In an ordered binary tree, if an internal vertex has two children, then they are called left child and right child.

• The subtree rooted at the left child of a vertex is called the left subtree and subtree rooted at the right child of a vertex is called the right subtree.

Page 25: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Left child of d

a

b c

d e h i

f g j k l

m

Page 26: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Right child of d

a

b c

d e h i

f g j k l

m

Page 27: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c

d e h i

f g j k l

mLeft subtree of c

Page 28: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c

d e h i

f g j k l

m Right subtree of c

Page 29: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Terminology (Cont.)

• The level of a vertex v in a rooted tree is the length of the unique path from the root to this vertex.

• What is the level of the root? 0

• The height of a rooted tree is the maximum of the levels of the vertices.

Page 30: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

a

b c d

e f g h

i j k l m

Levels 0

1

2

3

Height = 3

Page 31: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Properties of Trees

• A tree with n vertices has n1 edges.

• An full m-ary tree with i internal vertices contains n = mi + 1 vertices.

• A rooted m-ary tree of height h is called balanced if all leaves are at levels h or h–1.

Page 32: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Is this tree balanced?

Page 33: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Is this tree balanced?

Page 34: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

Is this tree balanced?

Page 35: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Tree Properties (Cont.)

• There are at most mh leaves in an m-ary tree of height h

• If an m-ary tree with l leaves is full and balanced, then its height is

h = logml

Page 36: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Homework Exercises

• Do Section 10.1 exercises # 1, 3, 5, 7, 9, 17, 19, 20, 27, 28

Page 37: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

CSE 2813Discrete Structures

Chapter 10, Section 10.2Applications of Trees

These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6th ed., by Kenneth H. Rosen, published by McGraw Hill, Boston, MA, 2006. They are intended for classroom use only and are not a substitute for reading the textbook.

Page 38: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Applications of Trees

• Binary Search Trees• Decision Trees• Prefix Codes (Huffman Coding)• Game Trees

Page 39: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Full and Complete Binary Trees

A full binary tree is a binary tree in which each node is either a leaf node or has degree 2 (i.e., has exactly 2 children).

A complete binary tree is a full binary tree in which all leaves have the same depth.

A nearly complete binary tree is completely filled on all levels except possibly the lowest, which is filled from the left up to a point.

Page 40: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Examples

Full binary tree: Complete binary tree:

Page 41: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

• What is the smallest height possible in a binary tree of 7 nodes? How many leaf nodes does it have?

height = 2

num. leaves = 4

Page 42: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

•What is the smallest height possible in a binary tree of 15 nodes? How many leaf nodes does it have?

height = 3

num. leaves = 8

Page 43: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

• What is the smallest height possible in a binary tree of 31 nodes? How many leaf nodes does it have?

height = 4

num. leaves = 16

Page 44: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

• What is the smallest height possible in a binary tree of (2n) - 1 nodes?

• The smallest height possible in a binary tree of (2n) - 1 nodes is n – 1.

• Example: a tree with 31 nodes has 25 – 1 nodes, so n = 5, and its height = (n – 1) = (5 – 1) = 4.

Page 45: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

• How many leaf nodes does a binary tree of (2n) - 1 nodes have?

• A tree with (2n) - 1 nodes has 2n-1 leaves

• Example: A tree with 31 nodes has 25 – 1 nodes, so n = 5, and this tree has 2n-1 = 25-1 = 24 = 16 leaves.

Page 46: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

Note the pattern here:In a completely filled binary tree

with (2n) – 1 nodes, half of the nodes (rounding up) will be leaves. That is, (2n) / 2 nodes will be leaf nodes. And we can rewrite (2n) / 2 as 2n-1.

Page 47: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Trees

Lemma: For any h 1, a binary tree which has more

than 2h-1 leaf nodes must have a height greater than h – 1.Example:

If a binary tree has 17 leaf nodes, can it have a height of 4?

No; a complete binary tree of height 4 has only 16 leaf nodes. A binary tree with 17 leaves must have a height greater than 4.

Page 48: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Search Trees

Page 49: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Binary Search Trees

Page 50: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Decision Trees

Page 51: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Decision Trees

Page 52: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Prefix Codes

Page 53: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

Consider the problem of data compression. Suppose that we have a 100,000-character file that contains only 6 different characters, a - f. Some characters occur more frequently than others.

Currently, the file is stored using a fixed-length code of 3 bits per character, where a = 000, b = 001, ..., f = 101.

This requires 300,000 bits to store the file.

This slide and the next 53 are adapted from: Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms, 2nd edition, The MIT Press, McGraw-Hill, 2001.

Page 54: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

Huffman coding uses a variable-length code to compress the file.

We can use a 0 to represent the most frequently-occurring letter in the file, which will save us two bits per occurrence.

Huffman codes are prefix codes, which means that all bit patterns are unambiguous; this requires that the bit-patterns for our other letters be 3 or 4 bits long.

Using Huffman coding, we can store the file in 2240,00 bits.

Page 55: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

a b c d e f

Frequency of occurrence (in thousands)

45 13 12 16 9 5

Codeword (fixed-length)

000 001 010 011 110 101

Codeword

(variable length)0 101 100 111 1101 1100

Page 56: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

Since we are using a prefix code, we can simply concatenate our codewords together to produce our bitstring.

For example, the string abc can be represented as 0101100.

This is unambiguous. Why?

Page 57: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

Only one character can begin with 0; that is a. So a must be the first character in our string.

This leaves 101100. The next bit is a 1; five characters can begin with 1, so we look at the second bit. Two characters can begin with 10, so we look at the third bit. Only one character can begin with 101; that is b.

This leaves 100. Again, looking at all three bits, we see that this character must be c.

Page 58: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Codes

Page 59: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Huffman Coding, using a

“Greedy Algorithm”

Page 60: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Game Trees

Page 61: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Game Trees

Page 62: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Game Trees

Page 63: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

CSE 2813Discrete Structures

Chapter 10, Section 10.3Tree Traversal

These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6th ed., by Kenneth H. Rosen, published by McGraw Hill, Boston, MA, 2006. They are intended for classroom use only and are not a substitute for reading the textbook.

Page 64: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Universal Address Systems

To totally order the vertices of on orered rooted tree:

1. Label the root with the integer 0.

2. Label its k children (at level 1) from left to right with 1, 2, 3, …, k.

3. For each vertex v at level n with label A, label its kv children, from left to right, with A.1, A.2, A.3, …, A.kv.

This labeling is called the universal address system of the ordered rooted tree.

Page 65: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Universal Address Systems

Page 66: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Traversal Algorithms

• A traversal algorithm is a procedure for systematically visiting every vertex of an ordered rooted tree– An ordered rooted tree is a rooted tree where

the children of each internal vertex are ordered

• The three common traversals are: – Preorder traversal

– Inorder traversal

– Postorder traversal

Page 67: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Traversal

• Let T be an ordered rooted tree with root r.• Suppose T1, T2, …,Tn are the subtrees at r

from left to right in T.

r

T1 T2 Tn

Page 68: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Preorder Traversal

r

T1 T2 Tn

Step 1: Visit rStep 2: Visit T1 in preorderStep 3: Visit T2 in preorder

.

.

.Step n+1: Visit Tn in preorder

Page 69: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Preorder Traversal

Page 70: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

A R EY PM HJ Q T

A

R

EY

P

M

HJ

Q T

Tree:

Visiting sequence:

Page 71: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Preorder Traversal of T

In which order does a preorder traversal visit the vertices in the ordered rooted tree T shown to the left?Preorder:Visit root, then visit subtrees left to right.

Page 72: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Preorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Preorder:

Visit root, then visit subtrees left to right.

Page 73: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Preorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Page 74: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Preorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Page 75: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Preorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Page 76: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Inorder Traversal

Step 1: Visit T1 in inorderStep 2: Visit rStep 3: Visit T2 in inorder

.

.

.Step n+1: Visit Tn in inorder

r

T1 T2 Tn

Page 77: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

A R EY PM HJ Q T

A

R

EY

P

M

HJ

Q T

Tree:

Visiting sequence:

Page 78: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Inorder Traversal of T

In which order does an inorder traversal visit the vertices in the ordered rooted tree T shown to the left?

Inorder:Visit leftmost tree, visit root, visit other subtrees left to right.

Page 79: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Inorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Inorder:Visit leftmost tree, visit root, visit other subtrees left to right.

Page 80: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Inorder Traversal of T

© The McGraw-Hill Companies, Inc. all rights reserved

Page 81: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Inorder Traversal of T

© The McGraw-Hill Companies, Inc. all rights reserved

Page 82: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Inorder Traversal of T

© The McGraw-Hill Companies, Inc. all rights reserved

Page 83: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Postorder Traversal

Step 1: Visit T1 in postorderStep 2: Visit T2 in postorder

.

.

.Step n: Visit Tn in postorderStep n+1: Visit r

r

T1 T2 Tn

Page 84: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

A R EYP MHJ Q T

A

R

EY

P

M

HJ

Q T

Tree:

Visiting sequence:

Page 85: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Postorder Traversal of TIn which order does a postorder traversal visit the vertices in the ordered rooted tree T shown to the left?

Postorder:Visit subtrees left to right, then visit root.

Page 86: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Postorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Postorder:Visit subtrees left to right, then visit root.

Page 87: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Postorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Page 88: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Postorder Traversal of T© The McGraw-Hill Companies, Inc. all rights reserved

Page 89: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

The Postorder Traversal of T

© The McGraw-Hill Companies, Inc. all rights reserved

Page 90: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Representing Arithmetic Expressions

• Complicated arithmetic expressions can be represented by an ordered rooted tree– Internal vertices represent operators

– Leaves represent operands

• Build the tree bottom-up– Construct smaller subtrees

– Incorporate the smaller subtrees as part of larger subtrees

Page 91: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

(x+y)2 + (x-3)/(y+2)

+

x y

2

x 3

+

y 2

/

+

Page 92: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Infix Notation

+

– +

/

+ 2

x y x 3 y 2

• Traverse in inorder adding parentheses for each operation

x+ y( ) 2( )+ x – 3( ) / y+2( )( )( )

Page 93: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Prefix Notation (Polish Notation)

• Traverse in preorder:

x+ y 2+ x– 3/ y+ 2

+

– +

/

+ 2

x y x 3 y 2

Page 94: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Evaluating Prefix Notation

• In an prefix expression, a binary operator precedes its two operands

• The expression is evaluated right-left

• Look for the first operator from the right

• Evaluate the operator with the two operands immediately to its right

Page 95: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

+ / + 2 2 2 / – 3 2 + 1 0+ / + 2 2 2 / – 3 2 1+ / + 2 2 2 / 1 1+ / + 2 2 2 1+ / 4 2 1

+ 2 1

3

Page 96: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Postfix Notation (Reverse Polish)

• Traverse in postorder

x +y 2 +x –3 /y +2

+

– +

/

+ 2

x y x 3 y 2

Page 97: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

• In an postfix expression, a binary operator follows its two operands

• The expression is evaluated left-right

• Look for the first operator from the left

• Evaluate the operator with the two operands immediately to its left

Evaluating Postfix Notation

Page 98: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Example

3

2 2 + 2 / 3 2 – 1 0 + / +

4 2 / 3 2 – 1 0 + / +

2 3 2 – 1 0 + / +

2 1 1 0 + / +

2 1 1 / +

2 1 +

Page 99: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Homework Exercises

• Do questions :

7, 9, 10, 12, 13, 15, 16, 17, 18, 23, 24

Page 100: Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth

Conclusion

• In this chapter we have studied:– Trees– Applications of Trees– Tree Traversal