Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen...

23
Chapter 4: Trees Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    246
  • download

    5

Transcript of Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen...

Page 1: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

Chapter 4: TreesChapter 4: Trees

General Tree ConceptsBinary Trees

Lydia Sinapova, Simpson College

Mark Allen Weiss: Data Structures and Algorithm Analysis in Java

Page 2: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

2

Trees

DefinitionsRepresentationBinary treesTraversalsExpression trees

Page 3: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

3

Definitions

tree - a non-empty collection of vertices & edgesvertex (node) - can have a name and carry other associated informationpath - list of distinct vertices in which successive vertices are connected by edges

Page 4: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

4

Definitions

any two vertices must have one and only one path between them else its not a tree

a tree with N nodes has N-1 edges

Page 5: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

5

Definitions

root - starting point (top) of the tree

parent (ancestor) - the vertex “above” this vertex

child (descendent) - the vertices “below” this vertex

Page 6: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

6

Definitions

leaves (terminal nodes) - have no children

level - the number of edges between this node and the root

ordered tree - where children’s order is significant

Page 7: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

7

Definitions

Depth of a node - the length of the path from the root to that node• root: depth 0

Height of a node - the length of the longest path from that node to a leaf• any leaf: height 0

Height of a tree: The length of the longest path from the root to a leaf

Page 8: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

8

Balanced Trees

the difference between the height of the left sub-tree and the height of the right sub-tree is not more than 1.

Page 9: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

9

Trees - Example

E

R

T

ELPM

EA

SA

root

Leaves or terminal nodes

Child (of root)

Depth of T: 2

Height of T: 1

Level

0

1

3

2

Page 10: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

10

Tree Representation

Class TreeNode { Object element; TreeNode firstChild; TreeNode nextSibling; }

Page 11: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

11

Example

a

b fe

c d g

a

b e

c d

f

g

Page 12: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

12

Binary Tree

S

A

B

N

O

N

P

D

M

I

S Internal node

External node

Page 13: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

13

Height of a Complete Binary Tree

L 0

L 1

L 2

L 3

At each level the number of the nodes is doubled. total number of nodes: 1 + 2 + 22 + 23 = 24 - 1 = 15

Page 14: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

14

Nodes and Levels in a Complete Binary Tree

Number of the nodes in a tree with M levels:

1 + 2 + 22 + …. 2M = 2 (M+1) - 1 = 2*2M - 1

Let N be the number of the nodes.

N = 2*2M - 1, 2*2M = N + 12M = (N+1)/2M = log( (N+1)/2 )

N nodes : log( (N+1)/2 ) = O(log(N)) levelsM levels: 2 (M+1) - 1 = O(2M ) nodes

Page 15: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

15

Binary Tree Node

Class BinaryNode

{

Object Element; // the data in the node

BinaryNode left; // Left child

BinaryNode right; // Right child

}

Page 16: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

16

Binary Tree – Preorder Traversal

C

LR

E

T

D

O

N

U

M

P

A

Root Left Right

First letter - at the root

Last letter – at the rightmost node

Page 17: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

17

Preorder Algorithm

preorderVisit(tree){ if (current != null) { process (current);

preorderVisit (left_tree);preorderVisit (right_tree);

}}

Page 18: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

18

Binary Tree – Inorder Traversal

U

AE

R

T

N

P

D

M

O

C

L

LeftRootRight

First letter - at the leftmost node

Last letter – at the rightmost node

Page 19: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

19

Inorder Algorithm

inorderVisit(tree){ if (current != null) {

inorderVisit (left_tree); process (current);

inorderVisit (right_tree); }}

Page 20: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

20

Binary Tree – Postorder Traversal

D

LU

A

N

E

P

R

O

M

C

T

LeftRightRoot

First letter - at the leftmost node

Last letter – at the root

Page 21: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

21

Postorder Algorithm

postorderVisit(tree){ if (current != null) {

postorderVisit (left_tree);postorderVisit (right_tree);process (current);

}}

Page 22: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

22

Expression Trees

1 2

The stack contains references to tree nodes (bottom is to the left)

+

1 2

3*

+

1 2

3

(1+2)*3

Post-fix notation: 1 2 + 3 *

Page 23: Chapter 4: Trees General Tree Concepts Binary Trees Lydia Sinapova, Simpson College Mark Allen Weiss: Data Structures and Algorithm Analysis in Java.

23

Expression Trees

In-order traversal:

(1 + 2) * ( 3)

Post-order traversal:

1 2 + 3 *

*

+

1 2

3