码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:des   style   blog   io   ar   color   os   sp   for   

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

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)

标签:des   style   blog   io   ar   color   os   sp   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!