数据结构实验之栈三:后缀式求值
来源:互联网 发布:mysql 多主多从 编辑:程序博客网 时间:2024/06/04 00:29
http://blog.csdn.net/sgbfblog/article/details/8001651
链接为转载的 后缀表达式转换成中缀表达式详解
Problem Description对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。 Input输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。 Output求该后缀式所对应的算术表达式的值,并输出之。 Example Input59*684/-3*+#Example Output57Hint基本操作数都是一位正整数!
这个方法是在网络上搜罗的,方法很巧妙。原理也是栈,只是用了数组模拟。
#include<stdio.h>#include<string.h>int main(){int top=0,i,k,s,num[50];char str;while(scanf("%c",&str),str!='#'){if(str>='0'&&str<='9')num[++top]=str-48;//如果是数字,直接把字符型的str通过-48变换成整形的num[]堆入栈中。else{switch(str){//如果不是数字,那么就是运算符。通过链接中知识点,我们可以知道出现运算符,直接运算栈顶和栈顶的下一个值。case '+':s=(num[top-1])+(num[top]);break;case '-':s=(num[top-1])-(num[top]);break;case '*':s=(num[top-1])*(num[top]);break;case '/':s=(num[top-1])/(num[top]);}top--;//出栈num[top]=s;//把运算后的s压入栈中,便于以后使用。直到str全部运算结束,最后一个数字就是栈顶,输出。}}printf("%d\n",num[top]);return 0;}
阅读全文
0 0
- SDUT2133数据结构实验之栈三:后缀式求值(栈)
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 2133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 2133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 3133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值 SDUT 2133
- 数据结构实验之栈三:后缀式求值
- 八大排序
- JAVA学习笔记_demo_多线程_1
- 竖式问题
- cite、small
- 随机森林参数理解与调优
- 数据结构实验之栈三:后缀式求值
- SQL知识点总结
- jQuery : selector选择器
- 反编译工具的使用
- List-ArrayList、LinkedList、Vector的底层实现和区别
- eclipse 手动配置kotlin
- MATLAB电云插值你和曲面,求工作点
- Glide的使用详解
- hdu