06 - Trees

Post on 10-May-2015

1.052 views 1 download

Tags:

description

I used this set of slides for the lecture on Trees I gave at the University of Zurich for the 1st year students following the course of Formale Grundlagen der Informatik.

Transcript of 06 - Trees

n5

n2

n6

n10

n1

n7

n4

n9n3

n8

n5

n2

n6

n10

n1

n7

n4

n9n3

n8

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

edge

node

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

leaf

root

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

parent

child

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

subtree

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

path

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

height = 1

depth = level = 2

degree = 1

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

height = 1

depth = level = 1

degree = 3

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

0

1

2

3

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8

ordered tree

leftmost rightmost

n5

n2

n6

n10

n1

n7

n4

n9

n3

n8 n7

n4

n9n8

n1

n5

n4

n6

n3

n10

isomorphic trees

n4

n2

n5

n1

n6

n3

n7

left right

left leftright right

n4

n2

n5

n1

n3

n6 n4

n2

n5

n1

n6

n3

not a binary tree binary tree

n4

n2

n5

n1

n6

n3

n7

complete binary tree

breadth-first traversal

n4

n2

n5

n1

n6

n3

breadth-first traversal

n4

n2

n5

n1

n6

n3

1

breadth-first traversal

n4

n2

n5

n1

n6

n3

2

1

breadth-first traversal

n4

n2

n5

n1

n6

n3

2 3

1

breadth-first traversal

n4

n2

n5

n1

n6

n3

2 3

4

1

breadth-first traversal

n4

n2

n5

n1

n6

n3

2 3

4 5

1

breadth-first traversal

n4

n2

n5

n1

n6

n3

2 3

4 65

1

n4

n2

n5

n1

n6

n3

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

2

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

2

3

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

2

3 4

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

2 5

3 4

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

2 5

3 64

1

preorder(node)

visit(node).preorder(node.left).preorder(node.right).

n4

n2

n5

n1

n6

n3

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

1

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

2

1

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

2

1 3

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

2

1 3

4

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

2

1 53

4

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

2 6

1 53

4

inorder(node)

inorder(node.left).visit(node).inorder(node.right).

n4

n2

n5

n1

n6

n3

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

1

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

1 2

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

3

1 2

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

3

1 42

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

3 5

1 42

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

n4

n2

n5

n1

n6

n3

3 5

1 42

6

postorder (node)

postorder(node.left).postorder(node.right).visit(node).

!"#$%&'(")$*

!

"#$#%&'!&$()*+,%&)$!&-!.,--#/!)$!(*)+!0#$#*,%&)$!%)!0#$#*,%&)$1!

Example (group 15)

!"#$%&'(")$*

!

"#$#%&'!&$()*+,%&)$!&-!.,--#/!)$!(*)+!0#$#*,%&)$!%)!0#$#*,%&)$1!

Example (group 15)

Hierarchical structure

Binary search tree

n4

n2

n5

n1

n6

n3

2 6

1 53

4

n4 n2 n5 n1 n6 n3

2 61 53 4

n4 n2 n5 n1 n6 n3

2 61 53 4

n4

n2

n5

n1

n6

n3

2 6

1 53

4

n4

n2

n5

n1

n6

n3

2

6

1

5

3

4

Binary search tree

n4

n2

n5

n1

n6

n3

2 6

1 53

4

a + b - c * d

a + b - c * d

a

+

b

-

c

*

d

a

+

b

-

c

*

d

operator

operand

Infix notation

a

+

b

-

c

*

d

Postfix notation

Prefix notation

Infix notation

a

+

b

-

c

*

d

Postfix notation

Prefix notation -+ab*cd

Infix notation

a

+

b

-

c

*

d

a+b-c*dPostfix notation

Prefix notation -+ab*cd

Infix notation

a

+

b

-

c

*

d

a+b-c*dPostfix notation ab+cd*-

Prefix notation -+ab*cd