0% found this document useful (0 votes)
71 views5 pages

Binary Tree Traversal Methods

The document discusses various binary tree traversal methods including preorder, inorder, postorder, and level order traversal. It provides pseudocode for algorithms to perform each type of traversal and examples of applying each traversal to sample binary trees. Additionally, it discusses how inorder and preorder traversals uniquely define a binary tree and can be used to reconstruct the tree structure.

Uploaded by

JatinChuglani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views5 pages

Binary Tree Traversal Methods

The document discusses various binary tree traversal methods including preorder, inorder, postorder, and level order traversal. It provides pseudocode for algorithms to perform each type of traversal and examples of applying each traversal to sample binary trees. Additionally, it discusses how inorder and preorder traversals uniquely define a binary tree and can be used to reconstruct the tree structure.

Uploaded by

JatinChuglani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Binary Tree Traversal Methods

Binary Tree Traversal Methods

• Preorder
• Inorder
• In a traversal of a binary tree, each element of • Postorder
the binary tree is visited exactly once. • Level order
• During the visit of an element, all action (make
a clone, display, evaluate the operator, etc.)
with respect to this element is taken.

Preorder Traversal Preorder Example (visit = print)


public static void preOrder(BinaryTreeNode t)
{ a
if (t != null)
{ b c
visit(t);
preOrder(t.leftChild); abc
preOrder(t.rightChild);
}
}

Preorder Example (visit = print) Preorder Of Expression Tree


a
/

b c
* +
e f
f +
d e -
g j a b c d
h i

/ * +a b - c d +e f
abdghei cf j
Gives prefix form of expression!
Inorder Traversal Inorder Example (visit = print)
public static void inOrder(BinaryTreeNode t)
{ a
if (t != null)
{ b c
inOrder(t.leftChild);
visit(t); bac
inOrder(t.rightChild);
}
}

Inorder Example (visit = print) Inorder By Projection (Squishing)


a a

b c b c
f f
d e d e
g h i j g h i j

gdhbei af j c g d h b e i a f jc

Inorder Of Expression Tree Postorder Traversal


public static void postOrder(BinaryTreeNode t)
/
{
if (t != null)
* +
{
e f postOrder(t.leftChild);
+ -
postOrder(t.rightChild);
a b c d visit(t);
}
a + b * c - d/ e + f }
Gives infix form of expression (sans parentheses)!
Postorder Example (visit = print) Postorder Example (visit = print)
a a

b c b c
f
d e
bca
g h i j

ghdi ebj f ca

Postorder Of Expression Tree Traversal Applications


a
/

b c
* +
e f
f d e
+ -
g h i j
a b c d
• Make a clone.
a b +c d - * e f + / • Determine height.
Gives postfix form of expression! •Determine number of nodes.

Level Order Level-Order Example (visit = print)


a
Let t be the tree root.
while (t != null)
b c
{
visit t and put its children on a FIFO queue; f
d e
remove a node from the FIFO queue and j
g h i
call it t;
// remove returns null when queue is empty
}
abcdef ghi j
Some Examples
Binary Tree Construction
preorder a a
• Suppose that the elements in a binary tree = ab b b
are distinct.
• Can you construct the binary tree from inorder b a
which a given traversal sequence came? = ab a b
• When a traversal sequence has more than
one element, the binary tree is not uniquely postorder b b
defined. = ab a a
• Therefore, the tree from which the sequence
was obtained cannot be reconstructed level order a a
uniquely. = ab b b

Preorder And Postorder


Binary Tree Construction
preorder = ab a a

• Can you construct the binary tree, postorder = ba b b


given two traversal sequences?
• Depends on which two sequences are • Preorder and postorder do not uniquely define a
given. binary tree.
• Nor do preorder and level order (same example).
• Nor do postorder and level order (same example).

Inorder And Preorder


Inorder And Preorder
a
• inorder = g d h b e i a f j c
• preorder = a b d g h e i c f j
gdhbei fjc
• Scan the preorder left to right using the
inorder to separate left and right subtrees. • preorder = a b d g h e i c f j
• a is the root of the tree; gdhbei are in the left • b is the next root; gdh are in the left
subtree; fjc are in the right subtree. subtree; ei are in the right subtree.
a
a

b fjc
gdhbei fjc
gdh ei
Inorder And Preorder
a Inorder And Postorder

b fjc
• Scan postorder from right to left using
gdh ei
• preorder = a b d g h e i c f j inorder to separate left and right subtrees.
• d is the next root; g is in the left • inorder = g d h b e i a f j c
subtree; h is in the right subtree. • postorder = g h d i e b j f c a
a
• Tree root is a; gdhbei are in left subtree; fjc
b fjc
are in right subtree.
d ei
g h

Inorder And Level Order

• Scan level order from left to right using


inorder to separate left and right subtrees.
• inorder = g d h b e i a f j c
• level order = a b c d e f g h i j
• Tree root is a; gdhbei are in left subtree; fjc
are in right subtree.

You might also like