📄 postfix.cpp
字号:
//IIT2006021//Arunanshu Pandey// the program is used to convert a infix expression to a postfix expression#include<iostream>#include<stdio.h>#include<string.h>#include<stdlib.h>using namespace std;const int size =50;string infix; char postfix[size];char stack[size];int top=-1;int precedence(char ch); // function to get the precedence of the operatorchar pop(); //function to pop an element from the stackchar topelement(); // returns the top element of the stackvoid push(char ch); // pushes an element into the stackint main(){ char ele,elem,st[2]; int prep,pre,popped,j=0,chk=0; // strcpy(postfix," "); getline(cin,infix);cout<<infix; for(int i=0;infix[i]!=0;i++) { if(infix[i]!='('&&infix[i]!=')'&&infix[i]!='^'&&infix[i]!='*'&&infix[i]!='/'&&infix[i]!='+'&&infix[i]!='-') postfix[j++]=infix[i]; else if(infix[i]=='(') { elem=infix[i]; push(elem); } else if(infix[i]==')') { while(popped=pop() != '(') postfix[j++]=popped; } else { elem=infix[i]; pre=precedence(elem);//stores the precedence of operator coming frm infix ele=topelement(); prep=precedence(ele);//stores the precedence of operator at the top of the stack if(pre > prep) push(elem); else { while(prep >= pre) { if(ele=='#') break; popped=pop(); ele=topelement(); postfix[j++]=popped; prep=precedence(ele); } push(elem); } } } while((popped=pop())!='#') postfix[j++]=popped; postfix[j]='\0'; cout<<"\n post fix :"<<postfix<<endl; return 0;}int precedence(char ch){ switch(ch) { case '^' : return 5; case '/' : return 4; case '*' : return 4; case '+' : return 3; case '-' : return 3; default : return 0; }}char pop() //function to pop the element from the stack{ char ret; if(top!=-1) { ret =stack[top]; top--; return ret; } else return '#';} char topelement() // function to return top element from the stack without popping{ char ch; if(top!=-1) ch=stack[top]; else ch='#'; return ch;}void push(char ch) // function to push an element in the stack{ if(top!=size-1) { top++; stack[top]= ch; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -