0% found this document useful (0 votes)
76 views

Make Tree From Infix Expression

1. The document describes how to construct a binary tree from an infix expression. 2. It provides an example infix expression and breaks it down step-by-step, assigning operands as leaf nodes and operators as internal nodes based on operator precedence. 3. The final binary tree constructed from the infix expression is shown.

Uploaded by

Cosma Aurelian
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

Make Tree From Infix Expression

1. The document describes how to construct a binary tree from an infix expression. 2. It provides an example infix expression and breaks it down step-by-step, assigning operands as leaf nodes and operators as internal nodes based on operator precedence. 3. The final binary tree constructed from the infix expression is shown.

Uploaded by

Cosma Aurelian
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

Make a Binary tree from Infix expression.

Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1)
Solution: First separate the operator and operand
___________________________________________________________
Operator:-> $ * - + / / (+)
Operand:-> 4 2 3 3 8 4 1 1
___________________________________________________________
Now separate the operator according to their priority
First priority :-> ( + ) // Because ( ) has greater priority
Second priority :-> $
Third priority :-> * / /
Fourth priority :-> - +
_____________________________________________________
Step 1:
_____________________________________________________
Root will be fixed according to lowest priority
So, In Foruth priority - +
Here + will be the first root of tree (right to left)
+
_________________________________________________
Step 2:
_________________________________________________
Now - will be the left child of root of this tree
Because - is existing in left side of +.
+
/
/
_________________________________________________
Step 3:
_________________________________________________
Now in Third priority :-> * / /
Here / will be right child of +.
Because / is existing in right side of +.
+
/ \
/ \
/

_________________________________________________
Step 4:
_________________________________________________
Here / will be right child of /.
Because / is existing in left side of /.
+
/ \
/ \
(/) Devide sign (no 1)
/
/
(/) devide sign (no 2)
_________________________________________________
Step 5:
_________________________________________________
Here * will be left child of -.
Because, In infix expression, * is existing in left side of -.
+
/ \
/ \
-

(/) Devide sign (no 1)


/
/
(/) devide sign (no 2)

/
/
*

_________________________________________________
Step 6:
_________________________________________________
In Second priority:-> $
Here $ will be left child of *.
Because, In infix expression,
$ is existing in left side of *.
+
/ \
/ \
/
/

(/) Devide sign (no 1)


/
/
(/) devide sign (no 2)

*
/
/
$
_________________________________________________
Step 7:
_________________________________________________
In First priority:-> (+)
Here (+) will be left child of / (devide sign no 1).

Because, In infix expression,


$ is existing in left side of *.
+
/ \
/ \
(/)
/
/ \
/
/ \
*
(/) +
/
/
$
_________________________________________________
Step 8:
_________________________________________________
Now As we know the expression is
Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1)
Operand:-> 4 2 3 3 8 4 1 1
Now put the operand only
_____________________________________________________
First of all take 4, Here 4 will be left child of $.
Because 4 is left side of $ in expression
+
/ \
/ \
(/)
/
/ \
/
/ \
*
(/) +
/
/
$
/
/
4
_____________________________________________________
Now take 2 , Here 2 will be right child of $.
Because 2 is right side of $ in expression.
+
/ \
/ \
(/)
/
/ \
/
/ \
*
(/) +
/

/
$
/ \
/ \
4
2
_____________________________________________________
Now take 3 , Here 3 will be right child of *.
Because 3 is right side of * in expression.
+
/ \
/ \
(/)
/
/ \
/
/ \
*
(/) +
/ \
/ \
$
3
/ \
/ \
4
2
_____________________________________________________
Now take 8, Here 8 will be left child of /(devide sign no 2).
Because 8 is left side of
will be right child of +.
And operand won't be root
be left child of /(devide

/ in expression. Here i am not saying that 8


Because / is the right child of +.
in Tree. So i am taking Here 8 will
sign no 2).

+
/
/

\
(/)
/ \
/ \
/ \
/ \
*
3 (/) +
/ \
/
/ \
/
$
3 8
/ \
/ \
4
2
________________________________________________________
Now take 4, Here 4 will be right child of /(devide sign no 2).
Because 4 is right side of / in the given expression.
+(first +)
\
\
(/)
/ \
/ \
/ \
/ \
/
/

*
/ \
/ \
$
/ \
/
4

(/) + (second +)
/ \
/ \
8
4

3
\
2

________________________________________________________
Now take 1, Here 1 will be left child of + (second +).
Because 1 is right side of /(devide sign no 2) in the given expression.
+ (first +)
\
\
(/)
/ \
/ \
/ \
/
\
*
3 (/)
+ (second +)
/ \
/ \
/
/ \
/ \ /
$
3
8
4 1
/ \
/ \
4
2
/
/

________________________________________________________
Now take 1, Here 1 will be right child of + (second +).
Because 1 is right side of + (second +) in the given expression.
+
/
/

\
(/)
/ \
/ \
/ \
/
\
*
3 (/)
+
/ \
/ \
/ \
/ \
/
\ / \
$
3
8
4 1
1
/ \
/ \
4
2
------------------------------------------The final Tree for an expression
|
|
Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1) |
|
------------------------------------------|
+
|
/ \
|
/
\
|
(/)
|

/ \
/
/ \
/
*
3 (/)
/ \
/ \
/ \
/
\
$
3
8
4
/ \
/ \
4
2

|
|
+
|
/ \
|
/ \
|
1
1
|
|
|
|
|
------------------------------------------\

You might also like