首页 > 代码库 > 郁闷的C小加(一)

郁闷的C小加(一)

/*************************************************************************    > File Name: 1.cpp    > Author:     > Mail:     > Created Time: 2014年08月03日 星期日 08时27分22秒 ************************************************************************/#include<iostream>#include <stack>using namespace std;int book(char c1){    if(c1==+||c1==-)        return 1;    if(c1==*||c1==/)        return 2;    return -1;}int main(){    int num;    stack<char> s;    string str;    cin>>num;    while(num--)    {        str ="";        cin>>str;        str.append(1,#);        for(unsigned int i =0;i<str.length();i++)        {             switch (str[i])            {                case #:                        while(!s.empty())                        {                            cout<<s.top();                            s.pop();                        }                        break;                case (:                        s.push(();                        break;                case ):                       while(s.top()!=()                       {                           cout<<s.top();                           s.pop();                       }                       s.pop();                       break;                default:                       if(str[i]>=0&&str[i]<=9)                            cout<<str[i];                       else                        {                               if(s.empty())                            {                                s.push(str[i]);                            }                            else if(book(s.top()) >= book(str[i]))                            {                                while(!s.empty()&&book(s.top())>=book(str[i]))                                {                                    cout<<s.top();                                    s.pop();                                }                                s.push(str[i]);                            }                            else                            {                                s.push(str[i]);                            }                                                    }                            break;            }        }        cout<<endl;    }    return 0;}

栈的应用,不过规则挺多的,浪费我好长时间。。参考这个http://blog.163.com/kevinlee_2010/blog/static/1698208202011102510740979/