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

来源:互联网 发布:java log4j level 编辑:程序博客网 时间:2024/05/19 17:57

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

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]);  }

0 0