Sunday, 6 January 2013

PROGRAM FOR PUSH POP IN C


#include<conio.h>
#include<stdio.h>
int conv(char ch);
void push(int);
void pop(int);
int stack[30],top=-1;
void main()
{
int i,j,n;
char str[30],c;
clrscr();
printf("enter string as postfix:");
scanf("%s",&str);
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
if(str[i]!=',')
{
c=str[i];
n=conv(c);
if(n<0)
pop(n);
else
{
push(n);
}
}
}
printf("result= %d",stack[0]);
getch();
}
int conv(char ch)
{
int i,num=0;
switch(ch)
{
case '0':num=0;break;
case '1':num=1;break;
case '2':num=2;break;
case '3':num=3;break;
case '4':num=4;break;
case '5':num=5;break;
case '6':num=6;break;
case '7':num=7;break;
case '8':num=8;break;
case '9':num=9;break;
case '+':num=-1;break;
case '-':num=-2;break;
case '*':num=-3;break;
case '/':num=-4;break;
case '%':num=-5;break;
}
return num;
}
void push(int num)
{
stack[++top]=num;
}
void pop(int ch)
{
int op1,op2,res;
op1=stack[top--];
op2=stack[top--];
switch(ch)
{
case -1:res=op2+op1;break;
case -2:res=op2-op1;break;
case -3:res=op2*op1;break;
case -4:res=op2/op1;break;
case -5:res=op2%op1;break;
}
push(res);
}

No comments:

Post a Comment