DATA STRUCTURE ASSIGNMENT #2

Comsats institute Of Information Technology Islamabad

Subject :

Data Structure

Assignment#:

2

Submitted to:

Sir Zaheer Ul Hassan Sani

Submitted by:

Haq Nawaz

Reg#:

Sp12-bcs-089

Submission date:

2 November 2013

SP12-BCS-089

Page 1
DATA STRUCTURE ASSIGNMENT #2

Task a:
We have infix expression in the form of:

((A-B)+C*(D+E))-(F+G)
Now reading expression from right to left and pushing operators into stack and
variables to output stack

Input
)
G
+
F
(
)
)
E
+
D
(
*
C
+
)
B
A
(
(
EMPTY
SP12-BCS-089

Output_stack
EMPTY
G
G
GF
GF+
GF+
GF+
GF+
GF+E
GF+E
GF+ED
GF+ED+
GF+ED+
GF+ED+C
GF+ED+C*
GF+ED+C*
GF+ED+C*B
GF+ED+C*B
GF+ED+C*BA
GF+ED+C*BAGF+ED+C*BA-+
GF+ED+C*BA-+-

Stack
)
)
)+
)+
EMPTY
-)
-))
-))
-))+
-))+
-)
-)*
-)*
-)+
-)+)
-)+)
-)+)-)+)-)+
EMPTY
Page 2
DATA STRUCTURE ASSIGNMENT #2

Out put_stack = GF+ED+C*BA-+Reversing the output_stack we get prefix expression:

-+-AB*C+DE+FG

Task b:
Evaluating the prefix expression:
Assigning the values to variables

A=7
B=6
C=5
D=4
Reading expression from right to left:
reading
1
2
+
3
4
+
5
*
6
7
+
-

operation
1
12
12+
33
334
3 3 4+
375
3 7 5*
3 35 6
3 35 6 7
3 35 6 73 35 1+
3 36 -

E=3

F=2

G=1

Stack_output
Empty
3
3
3
37
37
3 7 35
3 35
3 35
3 35 1
3 36
33

Pop stack_output : 33

Result=33

SP12-BCS-089

Page 3
DATA STRUCTURE ASSIGNMENT #2

Comparing both expressions evaluations:

((A-B)+C*(D+E))-(F+G)
((7-6)+5(4+3))-(2+1)
(1+5*7)-3
1+35-3
36-3
33

SP12-BCS-089

Page 4

Conversion from infix to prefix using stack

  • 1.
    DATA STRUCTURE ASSIGNMENT#2 Comsats institute Of Information Technology Islamabad Subject : Data Structure Assignment#: 2 Submitted to: Sir Zaheer Ul Hassan Sani Submitted by: Haq Nawaz Reg#: Sp12-bcs-089 Submission date: 2 November 2013 SP12-BCS-089 Page 1
  • 2.
    DATA STRUCTURE ASSIGNMENT#2 Task a: We have infix expression in the form of: ((A-B)+C*(D+E))-(F+G) Now reading expression from right to left and pushing operators into stack and variables to output stack Input ) G + F ( ) ) E + D ( * C + ) B A ( ( EMPTY SP12-BCS-089 Output_stack EMPTY G G GF GF+ GF+ GF+ GF+ GF+E GF+E GF+ED GF+ED+ GF+ED+ GF+ED+C GF+ED+C* GF+ED+C* GF+ED+C*B GF+ED+C*B GF+ED+C*BA GF+ED+C*BAGF+ED+C*BA-+ GF+ED+C*BA-+- Stack ) ) )+ )+ EMPTY -) -)) -)) -))+ -))+ -) -)* -)* -)+ -)+) -)+) -)+)-)+)-)+ EMPTY Page 2
  • 3.
    DATA STRUCTURE ASSIGNMENT#2 Out put_stack = GF+ED+C*BA-+Reversing the output_stack we get prefix expression: -+-AB*C+DE+FG Task b: Evaluating the prefix expression: Assigning the values to variables A=7 B=6 C=5 D=4 Reading expression from right to left: reading 1 2 + 3 4 + 5 * 6 7 + - operation 1 12 12+ 33 334 3 3 4+ 375 3 7 5* 3 35 6 3 35 6 7 3 35 6 73 35 1+ 3 36 - E=3 F=2 G=1 Stack_output Empty 3 3 3 37 37 3 7 35 3 35 3 35 3 35 1 3 36 33 Pop stack_output : 33 Result=33 SP12-BCS-089 Page 3
  • 4.
    DATA STRUCTURE ASSIGNMENT#2 Comparing both expressions evaluations: ((A-B)+C*(D+E))-(F+G) ((7-6)+5(4+3))-(2+1) (1+5*7)-3 1+35-3 36-3 33 SP12-BCS-089 Page 4