C++ Programming Tutorial

 
 
 
 

Image

 # include <iostream.h>
 # include   <string.h>
 # include   <stdlib.h>
 # include    <conio.h>

 int top=-1;

 char Stack[100]={NULL};

 void push(const char);
 const char pop( );

 void infix_to_postfix(const char *);


 int main( )
    {
       clrscr( );

       char Infix_expression[100]={NULL};

       cout<<\"\\n\\n Enter the Infix Expression : \";
       cin.getline(Infix_expression,80);

       infix_to_postfix(Infix_expression);

       getch( );
       return 0;
    }



 //-----------------------------  push(const char)  ----------------------//


 void push(const char Symbol)
    {
       if(top==99)
      cout<<\"Error : Stack is full.\"<<endl;

       else
      {
         top++;
         Stack[top]=Symbol;
      }
    }


 //--------------------------------  pop( )  -----------------------------//


 const 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(const char *Infix)
    {
       char Infix_expression[100]={NULL};
       char Postfix_expression[100]={NULL};

       strcpy(Infix_expression,\"(\");
       strcat(Infix_expression,Infix);
       strcat(Infix_expression,\")\");

       char Symbol[5]={NULL};
       char Temp[5]={NULL};

       for(int count=0;count<strlen(Infix_expression);count++)
      {
         Symbol[0]=Infix_expression[count];

         if(Symbol[0]==\'(\')
        push(Symbol[0]);

         else if(Symbol[0]==\')\')
        {
           Symbol[0]=pop( );

           while(Symbol[0]!=\'(\')
              {
             strcat(Postfix_expression,Symbol);

             Symbol[0]=pop( );
              }
        }

         else if(Symbol[0]==\'^\' || Symbol[0]==\'*\' || Symbol[0]==\'/\'
                    || Symbol[0]==\'+\' || Symbol[0]==\'-\')
        {
           if(Symbol[0]==\'*\' || Symbol[0]==\'/\')
              {
             Temp[0]=pop( );

             while(Temp[0]==\'^\' || Temp[0]==\'*\' || Temp[0]==\'/\')
                {
                   strcat(Postfix_expression,Temp);

                   Temp[0]=pop( );
                }

             push(Temp[0]);
              }

           else if(Symbol[0]==\'+\' || Symbol[0]==\'-\')
              {
             Temp[0]=pop( );

             while(Temp[0]!=\'(\')
                {
                   strcat(Postfix_expression,Temp);

                   Temp[0]=pop( );
                }

             push(Temp[0]);
              }

           push(Symbol[0]);
        }

         else
        strcat(Postfix_expression,Symbol);
      }

       cout<<\"\\n\\n Postfix Expression : \"<<Postfix_expression<<endl;
    }

    Related Post:
  1. Program to fill different types of geometric shapes using Boundary Fill Algorithm (Using Linked-List)

  2. Program to fill a Rectangle using Scan-Line Rectangle Fill Algorithm

  3. Program of DDA line drawing algorithm

  4. Program of inline function

  5. Program to illustrate the implementation of Translation Transformation

  6. Program to reverse the sequence of the words in the sentence and display the result

  7. Program to show the projection of 3D objects using Cavalier Oblique Parallel Projection onto xy-plane (i.e. angle=45 deg)

  8. Program that creats a 3D solid object using Translational Sweep Representatiom Method

  9. Program to read marks of 10 students for 4 subjects and compute and display total marks and status of each student

  10. Develop a Toy Compiler, which takes a series of statements as input, and creates a symbol table from it

  11. Program for electricity board charges calculation

  12. Program to illustrate classes without using inline functions

  13. Program to illusrate data conversion b/w built-in data types and user defined data types (int & float)

  14. Program that reads a number ,coumputes and displays its factorial using do-while loop

  15. Program to draw a line using Parametric equations

  16. Program to estimate the value of Fourth Derivative of the function at the given points from the given data using Central Difference Formula of order 4

  17. School management system

  18. Program to construct Natural Cubic Spline Interpolant from the given data

  19. Program to illustrate the use of friend classes

  20. Program for Operator Overloading and Friend Function concept

 
 
Didn't find what you were looking for? Find more on Program to convert an Infix Expression into a Postfix Expression