Tuesday 9 September 2014

C++ program to convert postfix to prefix expression

Here is a C++ program to convert postfix expression to prefix expression using stack. 



C++ program to convert postfix to prefix

#include<iostream>
#include<string.h>
using namespace std;
class prefix
{
    char post[30],stac[30][10];
    int top;
    public:
        prefix()
        {
            top=-1;
            for(int i=0;i<30;i++)
                for(int y=0;y<10;y++)
                   stac[i][y]=0;
        }
        void convert()
        {
            for(int i=0;post[i]!=0;i++)
            {
                if(post[i]>='a'&post[i]<='z')
                {
                    stac[++top][0]=post[i];
                }
                else
                {
                    int len=strlen(stac[top-1]);
                    for(int y=len;y>0;y--)
                         stac[top-1][y]=stac[top-1][y-1];
                    stac[top-1][0]=post[i];
                    for(int y=0;stac[top][y]!=0;y++)
                    {
                        stac[top-1][y+len+1]=stac[top][y];
                        stac[top][y]=0;
                    }
                    top--;
                }
            }
        }
        void show()
        {
            cout<<"Prefix expression : ";
            for(int i=0;stac[0][i]!=0;i++)
                cout<<stac[0][i];
        }
        void getdata()
        {
            cout<<"Enter postfix expression : ";
            cin.getline(post,30);
        }
};
int main()
{
    prefix con;
    con.getdata();
    con.convert();
    con.show();
    return 0;
}

No comments:

Post a Comment