Saltar al contenido

ejemplo de código de programa de notación infija a notación postfija

Este team redactor ha estado mucho tiempo buscando para darle resolución a tus preguntas, te dejamos la resolución de modo que esperamos serte de gran ayuda.

Ejemplo: programa de infijo a postfijo en c ++

/*https://github.com/Sudhanshu1304/Stack-Application*/#include#includeusingnamespace std;classStackprivate:char A[5];int Size;public:int top;Stack()

        top=-1;
        Size=sizeof(A)/sizeof(char);boolIsFull()if(top==Size-1)returntrue;elsereturnfalse;boolIsEmpty()if(top==-1)returntrue;elsereturnfalse;charpeek()return A[top];voidPush(char val)if(IsFull()==false)
            top++;
            A[top]=val;else
            cout<<"nThe Stack is Full"<<endl;charPop()if(IsEmpty()==false)char temp=A[top];
            A[top]='0';
            top--;return temp;elsereturn'-1';voidShow_Stack()for(int i=0;i<top+1;i++)
            cout<<A[i];;intSearch(char A)


    string CHAR[]="([",")","]","+-","*/","^$";int Size=(sizeof(CHAR)/sizeof(string));for(int i=0;i<Size;i++)if(A==CHAR[i][0])if(i+i>=6)return i+i;elsereturn i+i+0;elseif(CHAR[i][1]==A)if(i+i>=6)return i+i;elsereturn i+i+1;return-1;voidDisplay(char ch,string vari, Stack &s)int Size=s.top+1;


    cout<<"n   "<<ch<<"           ";
    s.Show_Stack();for(int i=0;i<10-Size;i++)
        cout<<" ";
    cout<<vari<<endl;intmain()

    Stack STACK;char temp;
    string exp;//"A+B*C";
    cout<<"Enter Your Expression :";
    cin>>exp;

    string out="";
    cout<<"nnExpression   Stack   Postfixn"<<endl;for(int i=0;i<exp.size();i++)

        temp=exp[i];int ab=Search(temp);if(ab!=-1)/* If We ENCOUNTER CLOSING BRACKETS*/if(ab<=5&& ab>=3)while(Search(STACK.peek())>2)char val=STACK.Pop();
                        out=out+val;Display(temp,out,STACK);
                STACK.Pop();Display(temp,out,STACK);/* Search Precedence*/elseif(Search(temp)>=0&&Search(temp)<=2)
                    STACK.Push(temp);Display(temp,out,STACK);/* If TOP < Temp */elseif(Search(STACK.peek())<ab)

                        STACK.Push(temp);Display(temp,out,STACK);else/* if STACK= +,* and temp= + then we have to remove two times */while(Search(STACK.peek())>=ab)char val=STACK.Pop();
                            out=out+val;Display(temp,out,STACK);
                    STACK.Push(temp);Display(temp,out,STACK);/* If an Alphabet */else

            out=out+temp;Display(temp,out,STACK);while(STACK.IsEmpty()==false)char val=STACK.Pop();

            out=out+val;Display(temp,out,STACK);
    cout<<"nnFINAL STRING : "<<out<<endl;

Puedes añadir valor a nuestra información participando con tu experiencia en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *