Binary Tree
•
A tree where each node has 0-2 children
•
Binary-search-tree property
–
Descendants on the left side are smaller than the
root node
–
Descendants on the right side are larger than the
Tree Traversals
•
Used to order the values in a binary tree
•
Three types of traversals
–
Preorder (root, left, right)
–
Postorder (left, right, root)
Preorder Traversal
•
Recursive procedure
–
Visit the root node
–
Visit the left node (or subtree)
–
Visit the right node (or subtree)
•
Preorder
–
Root
–
Left
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
Output: H
B
F
H
D
J
A
L
E
N
C
G
I
K
M
O
Preorder Traversal Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 1
B
F
H
D
J
A
L
E
N
I
K
M
O
G
C
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Preorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal
•
Recursive procedure
–
Visit the left node (or subtree)
–
Visit the right node (or subtree)
–
Visit the root node
•
Postorder
–
Left
–
Right
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
Postorder Traversal - Example 1
Output:
B
F
H
D
J
A
L
E
G
N
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Postorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal
•
Recursive procedure
–
Visit the left node (or subtree)
–
Visit the root node
–
Visit the right node (or subtree)
•
Inorder
–
Left
–
Root
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
Inorder Traversal - Example 1
Output:
B
F
H
D
J
A
L
E
G
N
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
G
D
I
A
L
F
N
C
H
J
M
O
K
E
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Inorder Traversal - Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
K
Example 1
B
F
H
D
J
A
L
E
G
N
C
I
K
M
O
Example 2
B
E
G
D
I
A
L
F
N
C
H
J
M
O
Applications
•
Print out tree elements in order
–
(Inorder traversal)
•
Grammar parsing
–
http://
www.cs.cornell.edu/courses/cs2110/2014fa/L21-P
arsingTrees/cs2110fa14Parsing.pdf
•
Tree serialization