Professional Documents
Culture Documents
Assingment 2
Assingment 2
SOURCE CODE
A)
#include<stdio.h>
#include<string.h>
char stack[SIZE];
printf("\nStack Overflow.");
else
top = top+1;
stack[top] = item;
char pop()
char item ;
if(top <0)
getchar();
exit(1);
else
item = stack[top];
top = top-1;
return(item);
/* define function that is used to determine whether any symbol is operator or not
if(symbol == '^' || symbol == '*' || symbol == '/' || symbol == '+' || symbol =='-')
return 1;
else
return 0;
return(3);
return(2);
return(1);
else
return(0);
int i, j;
char item;
char x;
i=0;
j=0;
if(item == '(')
push(item);
j++;
x=pop();
j++;
push(x);
postfix_exp[j] = x;
j++;
x = pop();
}
else
{ /* if current symbol is neither operand not '(' nor ')' and nor
operator */
getchar();
exit(1);
i++;
if(top>0)
getchar();
exit(1);
if(top>0)
getchar();
exit(1);
int main()
* in parentheses ( )
* in algorithm
* */
printf("ASSUMPTION: The infix expression contains single letter variables and single digit constants only.\n");
gets(infix);
return 0;
B)
#include<stdio.h>
#include<ctype.h>
char stack[100];
void push(char x)
stack[++top] = x;
char pop()
if(top == -1)
return -1;
else
return stack[top--];
int priority(char x)
{
if(x == '(')
return 0;
return 1;
return 2;
return 0;
int main()
char exp[100];
char *e, x;
scanf("%s",exp);
printf("\n");
e = exp;
while(*e != '\0')
if(isalnum(*e))
printf("%c ",*e);
push(*e);
else
printf("%c ",pop());
push(*e);
e++;
}
while(top != -1)
printf("%c ",pop());
}return 0;
}
Q. 1
a). (A-B)*(D/E)
( ( empty
A ( A
_ (- A
(-
B AB
) AB-
* * AB-
( *( AB-
D *( AB-D
/ *(/ AB-D
E *(/ AB-DE
) * AB-DE/
( ( EMPTY
A ( A
+ (+ A
B (+ AB
/ (+/ AB
D (+/ ABD
) ABD/+
/ / ABD/+
( /( ABD/+
E /( ABD/+E
- /(- ABD/+E
F /(- ABD/+EF
) / ABD/+EF-
+ + ABD/+EF-/
G + ABD/+EF-/G
A EMPTY A
* * A
B * AB
- - AB*
( -( AB*
C -( AB*C
+ -(+ AB*C
D -(+ AB*CD
) - AB*CD+
/ -/ AB*CD+
( -/( AB*CD+
E -/( AB*CD+E
- -/(- AB*CD+E
F -/(- AB*CD+EF
) -/ AB*CD+EF-
+ + AB*CD+EF-/-
G + AB*CD+EF-/-G
/ +/ AB*CD+EF-/-G
H +/ AB*CD+EF-/-GH
12/(7-3)+2*(3+8)-7
12 EMPTY 12
/ / 12
( /( 12
7 /( 12 7
- /(- 12 7
3 /(- 12 7 3
) / 12 7 3-
+ + 12 7 3-/
2 + 12 7 3-/2
* +* 12 7 3-/2
( +*( 12 7 3-/2
3 +*( 12 7 3-/23
+ +*(+ 12 7 3-/23
8 +*(+ 12 7 3-/238
) +* 12 7 3-/2 3 8+
- - 12 7 3-/2 3 8+*+
7 - 12 7 3-/2 3 8+*+7
‘-‘ 12
PUSH 2
PUSH 3 8 POP 8 3+8=11 PUSH 11
11
PUSH 8 3 POP 3 ‘*’ 2
‘+’ 2 3
3
PUSH 25
PUSH 7 7 POP 7 25-7=18 PUSH 18
18
‘-‘ 25 POP 25
ANS :- 18
Q. 3 /SOL :-
Q. 4/ SOL :-
A
/ \
B L
/ \
M K
/ \
N P
\
Q
IN-ORDER TREE FOR GIVEN ELEMENTS :- L B M A N K Q P
A
\
B
\
K
/ \
L M
/ \
N P
\
Q