lec 9 trees

35
7/23/2019 Lec 9 Trees http://slidepdf.com/reader/full/lec-9-trees 1/35 1 Trees Lecture # 9

Upload: williamsock

Post on 18-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 1/35

1

Trees

Lecture # 9

Page 2: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 2/35

2

Tree

 A tree is a collection of n nodes, one of which is the root,and n -1 edges.

n -1 edges, because each edge connects some node to itsparent, and every node except the root has one parent

ach node may have an arbitrary number of children,possibly !ero. "odes with no children are nown as leaves."odes with the same parent are siblings

 A Path from node n1 to n is defined as a se$uence of

nodes n1, n%, &,n such that ni is the parent of ni ' 1 for 1 ≤ i ( .

)he length of this path is the number of edges on the path,namely * 1

Page 3: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 3/35

3

Tree

)here is a path of length !ero from every

node to itself.

+n a tree there is exactly one path fromthe root to each node.

)he level of any node is the length of its

path from the root.

)he degree of a node is its number of

subtrees.

Page 4: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 4/35

4

Binary Trees

 A binary tree is either empty, or it consists of a node calledthe root together with two binary trees called the left sub-tree and right sub-tree of the root

 A binary tree consists of a root and one or two children named as left child and right child.

 A binary tree is a set of elements that is either empty or ispartitioned into three disjoint subsets.

)he first subset contains a single element called the root ofthe tree. )he other two subsets are themselves binary trees,called the left and right sub-trees of the original tree.

 A left or right sub-tree can be empty. ach element of the binary tree is called the node of the

tree.

Page 5: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 5/35

5

Binary Trees

Some Binary Trees

One node Two nodes

Three nodes

Page 6: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 6/35

6

Binary Trees

trictly inary )ree +f every non-leaf node in a binary tree has non-empty

left and right sub-trees A strict binary tree with n

leaves always contain 2n-1 nodes. omplete inary )ree

 A strictly binary tree all of whose leaves are at level d

+f a binary tree contains m nodes at levell 

 it containsat most %m nodes at level l '1.

 A complete binary tree contains 2l  nodes at level l .

Page 7: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 7/35

7

Dynamic Implementation of

Binary Tree  Linked Implementation

Page 8: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 8/35

8

Binary Trees Implementation

class BTNode

{

 public

  in! in"o#

BTNode $le"!% $ri&h!#

  BTNode'( { le"! ) ri&h! ) *# +

BTNode'in! el% BTNode $le" ) *% BTNode $re! ) *( {

in"o ) el#

le"! ) le"#ri&h! ) re!#

+

+#

Page 9: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 9/35

,

Binary Trees Implementation

class BT

{

 public

  BT' ( { roo! ) *# +

-BT' ( { clear' (# roo! ) *# +.oid clear' ( { clear'roo!(# roo! ) *# + //0ele!e all nodes o" a !ree

 bool is1mp!y' ( { re!urn roo! )) * +//checs !ree is emp!y or no!

.oid preorder' ( { preorder'roo!(# +//preorder !ra.ersal o" !ree

.oid inorder' ( { inorder'roo!(# +//inorder !ra.ersal o" !ree

.oid pos!order' ( { pos!order'roo!(# +//pos!order !ra.eral o" !ree

.oid bread!hirs!'(#//bread!h "irs! !ra.ersal

on!inue on ne! slide

Page 10: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 10/35

*

Binary Trees Implementation

 pri.a!e

BTNode $roo!#

.oid clear'BTNode $(#

.oid preorder'BTNode $(#

.oid inorder'BTNode $(#

.oid pos!order'BTNode $(#

+#

Page 11: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 11/35

Binary Trees Traversals

)ree )raversal is the process of visiting each

node in the tree exactly one time.

)ree traversals are of two types /epth 0irst )raversal

readth 0irst )raversal

)he three /epth 0irst )raversal techni$ues are

reorder tree traversal +norder tree traversal

ostorder tree traversal

Page 12: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 12/35

2

Binary Trees Traversals

reorder )ree )raversal

1. 2isit the root

%. )raverse the left sub-tree in preorder 3. )raverse the right sub-tree in preorder 

Example:

AB

C

ED9B01

Page 13: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 13/35

3

Binary Trees Traversals

.oid BTpreorder'BTNode $p(

{

i"'p :) *(

{

cou!;;p<=in"o#

 preorder'p<=le"!(#

 preorder'p<=ri&h!(#

+

+

Page 14: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 14/35

4

Binary Trees Traversals

+norder )ree )raversal4

1. )raverse the left sub-tree in inorder 

%. 2isit the root3. )raverse the right sub-tree in inorder 

Example:

A

BC

ED901B

Page 15: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 15/35

5

Binary Trees Traversals

.oid BTinorder'BTNode $p(

{

i"'p :) *(

{

inorder'p<=le"!(#

cou!;;p<=in"o#

inorder'p<=ri&h!(#

+

+

Page 16: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 16/35

6

Binary Trees Traversals

ostorder )ree )raversal4

1. )raverse the left sub-tree in postorder 

%. )raverse the right sub-tree in postorder 3. 2isit the root

Example:

A

BC

ED01B9

Page 17: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 17/35

7

Binary Trees Traversals

.oid BTpos!order'BTNode $p(

{

i"'p :) *(

{

 pos!order'p<=le"!(#

 pos!order'p<=ri&h!(#

cou!;;p<=in"o#

+

+

Page 18: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 18/35

8

Binary Trees Traversals

Traverse the following tree.

+

- /

* ^ E F

A B C D

>norder 9 $ B ? @ 0 A 1 /

reorder A * $ 9 B @ 0 / 1

os!order 9 B $ 0 @ < 1 / A

Page 19: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 19/35

,

Binary Trees Traversals

11!

"# 1$

%&1'

1(

1

"(

!

!

)re*order Traversal+

)ost*order Traversal+

In*order Traversal+

Traverse the following tree.

Page 20: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 20/35

2*

Binary Trees Traversals

Breadth First Tree Traversal +mplementation of this ind of traversal is

straightforward when a ueue is used.

onsider a top down left-to-right, breadth

first traversal.

 After a node is visited, its children, if any

are placed at the end 5rear6 of a $ueue, andthe node at the beginning 5front6 of the

$ueue is visited.

Page 21: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 21/35

Breadth First TraversalExample

A

C

D

B

E

,-

I

Page 22: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 22/35

Breadth First TraversalExample

C

/0e0e

B

A

C

D

B

E

,-

I

9

Page 23: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 23/35

D0e0e C

B

A

C

D

B

E

,-

I

9

Breadth First TraversalExample

Page 24: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 24/35

Breadth First TraversalExample

B

En0e0 D

D

A

C

D

B

E

,-

I

9

Page 25: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 25/35

Breadth First TraversalExample

D0e0e B

D

A

C

D

B

E

,-

I

9B

Page 26: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 26/35

Breadth First TraversalExample

D

En0e0e E2

E

A

C

D

B

E

,-

I

9B

Page 27: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 27/35

Breadth First TraversalExample

D0e0e D

E

A

C

D

B

E

,-

I

9B0

Page 28: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 28/35

Breadth First TraversalExample

D0e0e E

A

C

D

B

E

,-

I

9B01

Page 29: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 29/35

Breadth First TraversalExample

En0e0e ,2 -

, -

A

C

D

B

E

,-

I

9B01

Page 30: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 30/35

Breadth First TraversalExample

D0e0e

, -

A

C

D

B

E

,-

I

9B01C

Page 31: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 31/35

Breadth First TraversalExample

I

En0e0e I

, -

A

C

D

B

E

,-

I

9B01C

Page 32: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 32/35

Breadth First TraversalExample

A

C

D

B

E

,-

I

I

D0e0e ,

-

9B01C

Page 33: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 33/35

Breadth First TraversalExample

A

C

D

B

E

,-

I

I

D0e0e -

9B01CD

Page 34: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 34/35

Breadth First TraversalExample

A

C

D

B

E

,-

I

D0e0e I

9B01CD>

Page 35: Lec 9 Trees

7/23/2019 Lec 9 Trees

http://slidepdf.com/reader/full/lec-9-trees 35/35

35

Binary Trees Traversals .oid BTbread!hirs!'(

{ Eueue Fueue#

BTNode $p ) roo!#

i"'p :) *(

{ FueueenFueue'p(#

while':Fueueemp!y'((

{ p ) FueuedeFueue'(#cou!;;p<=ey#

i"'p <= le"! :) *( FueueenFueue'p<=le"!(#

i"'p <= ri&h! :) *( FueueenFueue'p<=ri&h!(#

+

++