14
Discrete Structure

Tree

Embed Size (px)

DESCRIPTION

Discrete Structure.

Citation preview

Page 1: Tree

Discrete Structure

Page 2: Tree

A tree is a finite set of one or more nodes such that:

There is a specially designated node called the root.

The remaining nodes are partitioned into n>=0 disjoint sets T1, ..., Tn, where each of these sets is a tree.

We call T1, ..., Tn the subtrees of the root.

Definition of Tree

Page 3: Tree

Crown

Church of England Cabin

etHouse of Commons

House of Lords

Supreme Court

Ministers

County Council Metropolitan police

County Borough Council

Rural District Council

The British Constitution

Page 4: Tree

K L

E F

B

G

C

M

H I J

D

A

Level

1

2

3

4

node (13)degree of a nodeleaf (terminal)Non terminalparentchildrensiblingdegree of a tree (3)ancestorlevel of a nodeheight of a tree (4)

3

2 1 3

2 0 0 1 0 0

0 0 0

1

2 2 2

3 3 3 3 3 3

4 4 4

Level and Depth

Page 5: Tree

♣The degree of a node is the number of subtreesof the node◙ The degree of A is 3; the degree of C is 1.

♣The node with degree 0 is a leaf or terminal node.

♣A node that has subtrees is the parent of the roots of the subtrees.

♣The roots of these subtrees are the children of the node.

♣Children of the same parent are siblings.♣The ancestors of a node are all the nodes

along the path from the root to the node.

Terminology

Page 6: Tree

A

B C

D

G

E F

IH

Property ValueNumber of nodes 9Height 5Root Node ALeaves C,D,F,H,IInterior nodes A,B,E,GNumber of levels 5Ancestors of H G,E,B,ADescendants of BE,G,H,ISiblings of E G

Tree Properties

Page 7: Tree

☻Every tree node: object – useful information children – pointers to its children nodes

O

O O

O

O

A Tree Node

Page 8: Tree

Two main methods:► Preorder► Postorder

Recursive definition

▓ PREorder: ► visit the root► traverse in preorder the children

(subtrees)▓ POSTorder

► traverse in postorder the children (subtrees)

► visit the root

Tree Traversal

Page 9: Tree

Algorithm preorder(v)“visit” node vfor each child w of v do

recursively perform preorder(w)In simple language first Root node is

traversed then Left child then Right child is traversed.

Preorder

1

2 3

4 5 6 7

8 9 10 11 12 13 14 15

Root Node

Right ChildLeft Child

Page 10: Tree

Algorithm postorder(v)for each child w of v do recursively perform postorder(w)“visit” node v

In simple language first Left child is traversed then Right child then Root node is traversed.

Postorder

1

2 3

4 5 6 7

8 9 10 11 12 13 14 15

Root Node

Right ChildLeft Child

Page 11: Tree

◘A special class of trees: max degree for each node is 2

◘Recursive definition: A binary tree is a finite set of nodes that is either empty or consists of a root and two disjoint binary trees called the left subtree and the right subtree.

◘Any tree can be transformed into binary tree.☺By left child-right sibling representation

Binary Trees

Page 12: Tree

J

IM

HL

A

B

C

D

E

F G K

Example

Page 13: Tree

The maximum number of nodes on level i of a binary tree is 2i-1, i>=1.

The maximum number of nodes in a binary tree of depth k is 2k-1, k>=1.

Prove by induction 2 2 11

1

i

i

kk

Maximum Number of Nodes in BT

Page 14: Tree

If a complete binary tree with n nodes (depth = log n + 1) is represented sequentially, then for any node with index i, 1<=i<=n, we have:

parent(i) is at i/2 if i!=1. If i=1, i is at the root and has no parent.leftChild(i) is at 2i if 2i<=n. If 2i>n, then i has noleft child.rightChild(i) is at 2i+1 if 2i +1 <=n. If 2i +1 >n,

then i has no right child.

Binary Tree Representations

That’s All