zoukankan      html  css  js  c++  java
  • 中缀表达式转后缀表达式 (栈)

    【题目链接】

        http://ybt.ssoier.cn:8088/problem_show.php?pid=1356

    【代码】

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int dict[128];
     4 int i,tot,a,b;
     5 char s[110],ss[110];
     6 stack<char> rec;
     7 stack<int> tmp;
     8 int main()
     9 {
    10     dict['+']=dict['-']=1;
    11     dict['*']=dict['/']=2;
    12     dict['^']=3;
    13     scanf("%s",s+1);
    14     for(i=1;s[i]!='';i++) {
    15         if(isdigit(s[i])) { while(isdigit(s[i])) ss[++tot]=s[i++]; i--; ss[++tot]=' '; }
    16         else switch(s[i]) {
    17             case '(': rec.push('('); break;
    18             case ')': while(rec.top()!='(') ss[++tot]=rec.top(), rec.pop(); rec.pop(); break;
    19             default:
    20                 while(rec.size()&&dict[rec.top()]>=dict[s[i]]) ss[++tot]=rec.top(), rec.pop(); rec.push(s[i]);
    21         }
    22 
    23     }
    24     while(rec.size()) ss[++tot]=rec.top(),rec.pop();
    25     for(i=1;i<=tot;i++)
    26         if(isdigit(ss[i])) {
    27             int cur=0;
    28             while(isdigit(ss[i])) cur=cur*10+ss[i++]-'0';
    29             tmp.push(cur);
    30         }
    31         else{
    32             int k=1;
    33             a=tmp.top();tmp.pop();
    34             b=tmp.top();tmp.pop();
    35             switch(ss[i]) {
    36                 case '+': tmp.push(a+b); break;
    37                 case '-': tmp.push(b-a); break;
    38                 case '*': tmp.push(a*b); break;
    39                 case '/': tmp.push(b/a); break;
    40                 case '^': for(int j=1;j<=a;j++) k*=b; tmp.push(k); break;
    41             }
    42         }
    43     printf("%d
    ",tmp.top());
    44     return 0;
    45 }
  • 相关阅读:
    Javascript进阶(7)---函数参数
    Django连接mssql(SqlServer)
    ORM查询
    Django-Model操作数据库
    Django去操作已经存在的数据库
    如何设置CentOS 7获取动态及静态IP地址
    nginx代理设置
    Django+Linux+Uwsgi+Nginx项目部署文档
    nginx的安装部署
    Django项目在linux系统中虚拟环境部署
  • 原文地址:https://www.cnblogs.com/Willendless/p/9403837.html
Copyright © 2011-2022 走看看