Queues data structure which implements a first

Download Report

Transcript Queues data structure which implements a first

Data Structures
Binary Trees
Azhar Maqsood
School of Electrical Engineering and Computer Sciences
(SEECS-NUST)
Visiting and Traversing a Node
• Many applications require that all of the nodes
of a tree be “visited”.
• Visiting a node may mean printing contents,
retrieving information, making a calculation,
etc.
• Traverse: To visit all the nodes in a tree in a
systematic fashion.
• A traversal can pass through a node without visiting
it at that moment.
Depth First and Breadth First Traversal
• Depth-first traversals: using the top-down view
of the tree structure. Traverse the root, the left
subtree and the right subtree.
• Breadth-first or level-order traversal: visit nodes
in order of increasing depth. For nodes of same
depth visit in left-to-right order.
Traversal strategies
• Preorder traversal
• Work at a node is performed before its children are
processed.
• Postorder traversal
• Work at a node is performed after its children are
processed.
• Inorder traversal
• For each node:
• First left child is processed, then the work at the node is performed,
and then the right child is processed.
Tree Traversal Types
Preorder traversal
• In the preorder traversal, the root node is processed
first, followed by the left subtree and then the right
subtree.
Preorder = root node of each subtree
before the subsequent left and right
subtrees.
Preorder Traversal
Preorder Traversal
• Visit root before traversing subtrees.
A
B
D
H
C
E
I
G
F
J
K
Inorder Traversal
• In the inorder traversal, the left subtree is
processed first, followed by the root node, and
then the right subtree.
Inorder = root node in between
the left and right subtrees.
Inorder Traversal
Inorder Traversal
• In an inorder traversal a node is visited after its
left subtree and before its right Subtree
• Application: draw a binary tree or Arithmetic
expression printing
((2 × (a − 1)) + (3 × b))
Example of Binary Tree (inorder)
Inorder Traversal
• Visit root between left and right subtree.
A
B
D
H
C
E
I
F
G
J
K
Postorder traversal
• In the postorder traversal, the left subtree is
processed first, followed by the right subtree,
and then the root node.
Postorder = root node after
the left and right subtrees.
Postorder Traversal
traversal
Postorder
Postorder traversal
• In a postorder traversal, a node is visited after its
descendants
• Application: compute space used by files in a
directory and its subdirectories
Postorder traversal
• Visit root after traversing subtrees.
A
B
D
H
C
E
I
G
F
J
K
Expression Trees
+
×
+
×
a
b
+
×
c
d
g
f
e
Expression tree for ( a + b × c) + ((d ×e + f) × g)
There are three notations for a mathematical expression:
1) Infix notation : ( a + (b × c)) + (((d ×e) + f) × c)
2) Postfix notation: a b c × + d e × f + g * +
3) Prefix notation : + + a × b c × + × d e f g
Expression Tree traversals
• Depending on how we traverse the expression tree, we
can produce one of these notations for the expression
represented by the three.
• Inorder traversal produces infix notation.
•
•
This is a overly parenthesized notation.
Print out the operator, then print put the left subtree inside parentheses,
and then print out the right subtree inside parentheses.
• Postorder traversal produces postfix notation.
•
Print out the left subtree, then print out the right subtree, and then
printout the operator.
• Preorder traversal produces prefix notation.
•
Print out the operator, then print out the right subtree, and then print out
the left subtree.