首页 > 其他 > 详细

数据结构实验之栈三:后缀式求值 (stack)

时间:2014-11-27 14:17:55      阅读:268      评论:0      收藏:0      [点我收藏+]

数据结构实验之栈三:后缀式求值 

Time Limit: 1000MS Memory limit: 65536K

题目描述

对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。

输入

输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。

输出

求该后缀式所对应的算术表达式的值,并输出之。

示例输入

59*684/-3*+#

示例输出

57

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<stack>
 6 using namespace std;
 7 
 8 int main()
 9 {
10     stack<int>q;
11     int i, t=0, f=0, len;
12     char s[10000];
13     scanf("%s", s);
14     len = strlen(s);
15     for(i=0; i<len; i++)
16     {
17         if(s[i]==#)
18         {
19             printf("%d\n", q.top());
20             break;
21         }
22         if(s[i]>=0  && s[i]<=9)
23         {
24             t = s[i]-0;
25             q.push(t);
26         }
27         else
28         {
29             f = q.top();
30             q.pop();
31             t = q.top();
32             q.pop();
33             if(s[i]==+)
34                 t = t+f;
35             if(s[i]==-)
36                 t = t-f;
37             if(s[i]==*)
38                 t = t*f;
39             if(s[i]==/)
40                 t = t/f;
41             q.push(t);
42         }
43     }
44     return 0;
45 }

 

数据结构实验之栈三:后缀式求值 (stack)

原文:http://www.cnblogs.com/6bing/p/4126093.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!