您的位置:首页 > 理论基础 > 数据结构算法

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

2015-11-13 19:13 274 查看


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



Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^


题目描述

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

输入

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

输出

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

示例输入

59*684/-3*+#


示例输出

57


提示

基本操作数都是一位正整数!

来源

示例程序

#include<stdio.h>
#include<string.h>
struct node
{
int data[1000];
int top;
}S1;
int main()
{
int i,j,n,m,k,t;
char c;
S1.top=-1;
while(c=getchar(),c!='#')
{
if(c>='0'&&c<='9')
{
S1.top++;
S1.data[S1.top]=(int)(c-'0');
}
else if(c=='+')
{
S1.data[S1.top-1]=S1.data[S1.top-1]+S1.data[S1.top];
S1.top--;
}
else if(c=='-')
{
S1.data[S1.top-1]=S1.data[S1.top-1]-S1.data[S1.top];
S1.top--;
}
else if(c=='*')
{
S1.data[S1.top-1]=S1.data[S1.top-1]*S1.data[S1.top];
S1.top--;
}
else if(c=='/')
{
S1.data[S1.top-1]=S1.data[S1.top-1]/S1.data[S1.top];
S1.top--;
}
}
printf("%d\n",S1.data[0]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: