Professional Documents
Culture Documents
DSA Reg#51 Lab#11
DSA Reg#51 Lab#11
Task 1:
Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char stack[SIZE];
{
if(top >= SIZE-1) {
printf("\nStack Overflow.");
else {
top = top+1;
stack[top] = item;
char pop() {
char item ,
if(top <0) {
printf("\nStack Underflow."),
getchar();
exit(1);
}
else {
item = stack[top];
top = top-1,
return(item);
}
}
else {
return(0);
}
push('(');
strcat(infix exp,")");
i=0;
j=0;
item=infix exp[i];
while(item != V') {
if(item — '() {
push(item);
}
else if( isdigit(item) isalpha(item)) {
postfix exp[j] = item;
j++,
}
else if(is operator(item) == 1) {
x=pop();
j++,
x = pop();
}
push(x);
push(item);
}
else if(item == ')') {
x = pop();
while(x != '(') {
postfix_exp[j] = x;
j++,
x = pop();
}
}
else {
printf("\nInvalid infix ExpressionAn");
getchar();
exit(1);
}
i++;
item = infix exp[i];
}
if(top>0) {
printf("\nInvalid infix ExpressionAn");
getchar();
exit(1);
}
postfix exp[j] = '\0',
int main()
{
char infix[SIZE], postfix[SIZE];
gets(infix);
InfixToPostfix(infix,postfix);
puts(postfix);
Conclusion:
From this lab, I learned to implement stack and how to convert infix to postfix
expression using different algorithms in C language. I also learned how to use
different libraries in C. I also learned the use of infix & postfix expressions and
their working as well. I understood the step by step implementation of the
program. The postfix expression makes it easier for the machine to be carried
out.