C++中缀表达式转换后缀表达式

来源:互联网 发布:变声软件手机版 编辑:程序博客网 时间:2024/06/05 00:44
#include <iostream>#include <stack>using namespace std;void inToPostfix(){    stack<char> s;    char token;    cin>>token;    while(token!='=')    {        if(token>'a'&&token<='z')            cout<<token<<" ";        else            switch(token)        {        case ')':            while(!s.empty()&&s.top()!='(')            {                cout<<s.top()<<" ";                s.pop();            }            s.pop();            break;        case '(':            s.push(token);            break;        case '^':            while(!s.empty()&&!(s.top()=='^'||s.top()=='('))            {                cout<<s.top();                s.pop();            }            s.push(token);            break;        case '*' :        case '/' :            while(!s.empty() && s.top() != '+'&& s.top() != '-' && s.top() != '(')            {                cout<<s.top();                s.pop();            }            s.push(token); 
    break;        case '+' :        case '-' :            while(!s.empty() && s.top() != '(' )            {                cout<<s.top()<<" ";                s.pop();            }            s.push(token);            break;        }        cin>> token;}    }    while (!s.empty())    {        cout<<s.top()<<" ";        s.pop();    }}int main(){    inToPostfix();    return 0;}



原创粉丝点击