Page 449 - C++
P. 449
///**********************************************************************
***/constchar pop( )
char pop()
{
char Symbol=NULL;
if(top==-1)
cout<<"Error : Stack is empty."<<endl;
else
{
Symbol=Stack[top];
Stack[top]=NULL;
top--;
}
return Symbol;
}
/************************************************************************
*///--------------------- infix_to_postfix(const char *) --------------
--
///**********************************************************************
***/void infix_to_postfix(constchar *Infix)
void infix_to_postfix(char *Iexp)
{
char pexp[100]={NULL};
char Symbol[5]={NULL};
char Temp[5]={NULL};
int f=0;
for(int count=0;count<strlen(Iexp);count++)
{
Symbol[0]=Iexp[count];
if(!isalnum(Iexp[count]) && f==0)
{
strcat(pexp," ");
f=1;
}
else
f=0;
if(Symbol[0]=='(')
push(Symbol[0]);
else if(Symbol[0]==')')
{
Symbol[0]=pop();
while(Symbol[0]!='(')
{
strcat(pexp,Symbol);
Symbol[0]=pop();
}
}
else if(Symbol[0]=='^' || Symbol[0]=='*' || Symbol[0]=='/'
|| Symbol[0]=='+' || Symbol[0]=='-')
{