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

Transcript of Section 10.1 Introduction to Trees These class notes are based on material from our textbook,...

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