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]=='-')
                                  {
   444   445   446   447   448   449   450   451   452   453   454