0% found this document useful (0 votes)
74 views11 pages

Tree Traversals (For Binary Trees) and Expression Trees

The document discusses different types of tree traversals and expression trees. It describes three types of depth-first tree traversals: preorder, inorder, and postorder. It provides pseudocode for performing each type of traversal on a binary tree. It also explains how arithmetic or logical expressions can be represented as expression trees, with internal nodes as operators and leaves as operands. An example expression tree is provided for the expression (A + B)2 + (C - 5) / 3.

Uploaded by

jehoshua35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views11 pages

Tree Traversals (For Binary Trees) and Expression Trees

The document discusses different types of tree traversals and expression trees. It describes three types of depth-first tree traversals: preorder, inorder, and postorder. It provides pseudocode for performing each type of traversal on a binary tree. It also explains how arithmetic or logical expressions can be represented as expression trees, with internal nodes as operators and leaves as operands. An example expression tree is provided for the expression (A + B)2 + (C - 5) / 3.

Uploaded by

jehoshua35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 11

Binary Tree Traversals and Expression trees

Outline of this topic:


• Tree Traversal classification
– Breadth-first traversal
– Depth-first traversals: Pre-order, In-order, and Post-order
• Expression Trees
Tree Traversal Classification
• The process of systematically visiting all the nodes in a tree and
performing some processing at each node in the tree is called a
tree traversal.

• A traversal starts at the root of the tree and visits every node in the
tree exactly once.

• There are two common methods in which to traverse a tree:

1. Breadth-First Traversal (or Level-order Traversal).

2. Depth-First Traversal:
• Preorder traversal
• Inorder traversal (for binary trees only)
• Postorder traversal
Breadth-First Traversal (Contd.)
Breadth-First traversal visits a tree level-wise from top to bottom

K F U P M S T A R
Breadth-First Traversal (Contd.)

Exercise: Write a BinaryTree instance method for Reverse Breadth-First Traversal

R A T S M P U F K
Depth-First Traversals

Name for each Node: CODE


public void preorderTraversal(Visitor v){
if(!isEmpty() && ! v.isDone()){
•Visit the node v.visit(getKey());
Preorder
•Visit the left subtree, if any. getLeft().preorderTraversal(v);
(N-L-R) getRight().preorderTraversal(v);
•Visit the right subtree, if any.
}
}
public void inorderTraversal(Visitor v){
if(!isEmpty() && ! v.isDone()){
•Visit the left subtree, if any. getLeft().inorderTraversal(v);
Inorder
Visit the node v.visit(getKey());
(L-N-R)
•Visit the right subtree, if any. getRight().inorderTraversal(v);
}
}
public void postorderTraversal(Visitor v){
if(!isEmpty() && ! v.isDone()){
•Visit the left subtree, if any. getLeft().postorderTraversal(v) ;
Postorder
•Visit the right subtree, if any. getRight().postorderTraversal(v);
(L-R-N) v.visit(getKey());
•Visit the node
}
}
Preorder Depth-first Traversal
N-L-R
”A node is visited when passing on its left in the visit path“

K F P M A U S R T
Inorder Depth-first Traversal
L-N-R
”A node is visited when passing below it in the visit path“

Note: An inorder traversal can pass


through a node without visiting it at
that moment.

P F A M K S R U T
Postorder Depth-first Traversal
L-R-N
”A node is visited when passing on its right in the visit path“

Note: An postorder traversal can


pass through a node without visiting
it at that moment.

P A M F R S T U K
Expression Trees
• An arithmetic expression or a logic proposition can be represented by a
Binary tree:
– Internal vertices represent operators
– Leaves represent operands
– Subtrees are subexpressions

• A Binary tree representing an expression is called an expression tree.

• Build the expression tree bottom-up:


– Construct smaller subtrees
– Combine the smaller subtrees to form larger subtrees
Expression Trees (Contd.)
Example: Create the expression tree of (A + B)2 + (C - 5) / 3
Expression Trees (Contd.)
Example: Create the expression tree of the compound proposition: (p  q)  (p  q)

You might also like