数据结构实验之栈三:后缀式求值
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57
#include <stdio.h>
#include <string.h>
int main()
{
int n,m,i,j;
char c[10000];
int b[10000];
scanf("%s",c);
n=strlen(c);
int top=0;
for(i=0;i<n;i++)
{
if(c[i]>='0'&&c[i]<='9')
{
b[++top]=c[i]-'0';
}
else if(c[i]=='+')
{
b[top-1]=b[top-1]+b[top];
top--;
}
else if(c[i]=='-')
{
b[top-1]=b[top-1]-b[top];
top--;
}
else if(c[i]=='*')
{
b[top-1]=b[top-1]*b[top];
top--;
}
else if(c[i]=='/')
{
b[top-1]=b[top-1]/b[top];
top--;
}
}
printf("%d\n",b[top]);
return 0;
}
本文介绍了一种使用栈数据结构来解析和计算后缀表达式的算法实现。输入为一个包含基本运算符及数字的后缀表达式字符串,通过逐个处理字符并利用栈进行临时存储与运算,最终得到表达式的计算结果。
1108

被折叠的 条评论
为什么被折叠?



