postfix
#include<iostream>
using namespace std;
struct stacktype
{float data[6];
int top;
};
void push(stacktypes,float d)
{if (s->top<6)
{s->top++;
s->data[s->top]=d;}}
float pop (stacktypes)
{float z;
if(s->top !=-1)
{z=s->data [s->top];
s->top--;
return z;}
return 0;}
float oper(char symbol,float op1,float op2)
{switch(symbol)
{case'+':return(op1+op2);break;
case'-':return(op1-op2);break;
case'':return(op1op2);break;
case'/':return(op1/op2);break;
default:cout<<"illegaal operation";}
return 0;}
int main()
{float value,op1,op2,symb;
char symbol;
stacktypes;
s= new stacktype;
s->top=-1;
cout<<"\n please enter the postfix expression";
cin>>symbol;
while(symbol!='.')
{if(symbol=='+'||symbol=='-'||symbol==''||symbol=='/')
{op2=pop(s);
op1=pop(s);
value=oper(symbol,op1,op2);
push(s,value);
}
else
{if (symbol == '0')symb=0;else
if (symbol == '1')symb=1;else
if (symbol == '2')symb=2;else
if (symbol == '3')symb=3;else
if (symbol=='4')symb=4;else
if (symbol=='5')symb=5;else
if (symbol=='6')symb=6;else
if (symbol=='7')symb=7;else
if (symbol=='8')symb=8;else
if (symbol=='9')symb=9;
push(s,symb);
}
cin>>symbol;}
value=pop(s);
cout<<"value"<<value;
return 0;}