CHAPTER 06 Compiled by: Dr. Mohammad Omar Alhawarat Trees.

Post on 04-Jan-2016

238 views 1 download

Tags:

Transcript of CHAPTER 06 Compiled by: Dr. Mohammad Omar Alhawarat Trees.

CHAPTER 06

Compiled by: Dr. Mohammad Omar AlhawaratTrees

2

Definition of Tree

A tree is a set of linked nodes, such that there is one and only one path from a unique node (called the root node) to every other node in the tree

3

Hierarchical Organization

Example: File Directories

4

Tree Terminology

Nodes at a given level are children of nodes of previous level

Node with children is the parent node of those children

Nodes with same parent are siblings Node with no children is a leaf node The only node with no parent is the root

node All others have one parent each

5

Example of a Tree

A

C B D

E F G

root

6

Example of a Tree

A

C B D

E F G

rootIn a tree, every pair of linked nodes have a parent-child relationship (the parent is closer to the root)

7

Example of a Tree (Cont.)

A

C B D

E F G

root For example, C is a parent of G

8

Example of a Tree (Cont.)

A

C B D

E F G

root E and F are children of D

9

Example of a Tree (Cont.)

A

C B D

E F G

root The root node is the only node that has no parent.

10

Example of a Tree (Cont.)

A

C B D

E F G

root Leaf nodes (or leaves for short) have no children.

11

Subtrees

A

B C

I K D E F

J G H

subtree

root A subtree is a part of a tree that is a tree in itself

12

Subtrees (Cont.)

A

B C

I K D E F

J G H

subtree

root It normally includes each node reachable from its root.

13

Subtrees (Cont.)

A

B C

I K D E F

J G H

root Even though this looks like a subtree in itself…

14

Binary Trees

A binary tree is a tree in which each node can only have up to two children…

15

Not a Binary Tree

A

B C

I K D E F

J G H

root

16

Example of a Binary Tree

A

B C

I K E

J G H

rootThe links in a tree are often called edges

17

Levels

A

B C

I K E

J G H

rootlevel 0

level 1

level 2

level 3

The level of a node is the number of edges in the path from the root node to this node

18

Full Binary Tree

B

D

H

root

I

A

E

J K

C

F

L M

G

N O

In a full binary tree, each node has two children except for the nodes on the last level, which are leaf nodes

19

Complete Binary Trees

A complete binary tree is a binary tree that is either a full binary tree OR a tree that would be a full binary tree but it

is missing the rightmost nodes on the last level

20

Complete Binary Trees (Cont.)

B

D

H

root

I

A

E

C

F G

21

Complete Binary Trees (Cont.)

B

D

H

root

I

A

E

J K

C

F

L

G

22

Full Binary Trees

B

D

H

root

I

A

E

J K

C

F

L M

G

N O

A full binary tree is also a complete binary tree.

1-23

The formula for the maximum number of nodes is derived from the fact that each node can have only two descendants. Given a height of the binary tree, H, the maximum number of nodes in the full binary tree is given as follows:

max 2 1HN

Full Binary Trees (Cont.)

1-24

To Assure that a binary tree is Balanced one the following algorithms is used:

AVL Trees. Red-Black Trees. 2-3 Trees and the general case (B-Trees)

B-Trees are used with Fetching data from Large Databases.

Balanced Binary Trees

25

Binary Trees

A binary tree is either empty or has the following form

Where Tleft and Tright are binary trees

26

Binary Trees

Every nonleaf in a full binary tree has exactly two children

A complete binary tree is full to its next-to-last level Leaves on last level filled from left to right

The height of a binary tree with n nodes that is either complete or full is log2(n + 1)

27

Binary Trees

28

A tree is a set of nodes that either: is empty or has a designated node, called the root,

from which hierarchically descend zero or more subtrees, which are also trees.

Recursive definition of a tree

29

Recursive definition of a tree (Cont.)

30

Tree Traversal

Four meaningful orders in which to traverse a binary tree. Preorder Inorder Postorder Level order

31

Tree Traversal (Cont.)

32

In Preorder, the rootis visited before (pre)the subtrees traversals

In Inorder, the root isvisited in-between left and right subtree traversal

In Postorder, the rootis visited after (post)the subtrees traversals

Preorder Traversal:1. Visit the root2. Traverse left subtree3. Traverse right subtree

Inorder Traversal:1. Traverse left subtree2. Visit the root3. Traverse right subtree

Postorder Traversal:1. Traverse left subtree2. Traverse right subtree3. Visit the root

Tree Traversal (Cont.)

33

Tree Traversal (Cont.)

Visiting a node Processing the data within a node

This is the action performed on each node during traversal of a tree

A traversal can pass through a node without visiting it at that moment

For a binary tree Visit the root Visit all nodes in the root's left subtree Visit all nodes in the root's right subtree

34

Tree Traversal (Cont.)

Preorder traversal: visit root before the subtrees

35

Tree Traversal (Cont.)

Inorder traversal: visit root between visiting the subtrees

36

Tree Traversal (Cont.)

Postorder traversal: visit root after visiting the subtrees

These are examples of a depth-first traversal.

These are examples of a depth-first traversal.

37

Tree Traversal (Cont.)

Level-order traversal: begin at the root, visit nodes one level at a time

This is an example of a breadth-first traversal.

This is an example of a breadth-first traversal.

38

Tree Traversals – Example 1

39

Assume: visiting a node is printing its label

Preorder: 1 3 5 4 6 7 8 9 10 11 12

Inorder:4 5 6 3 1 8 7 9 11 10 12

Postorder:4 6 5 3 8 11 12 10 9 7 1

1

3

11

98

4 6

5

7

12

10

Tree Traversals – Example 2

40

Assume: visiting a node is printing its data

Preorder: 15 8 2 6 3 711 10 12 14 20 27 22 30

Inorder: 2 3 6 7 8 10 1112 14 15 20 22 27 30

Postorder: 3 7 6 2 10 1412 11 8 22 30 27 20 15

6

15

8

2

3 7

11

10

14

12

20

27

22 30

Tree Traversals – Example 3

41

Tree Traversals – Example 4

42

Examples of Binary Trees

Expression Trees

44

Tree Traversal - Summary

Level order traversal is sometimes called breadth-first.

The other traversals are called depth-first.

Traversal takes Θ(n) in both breadth-first and depth-first.

Memory usage in a perfect tree is Θ(log n) in depth-first and Θ(n) in breadth-first traversal.

45

Questions?

Questions ?