数据结构实验之栈二:一般算术表达式转换成后缀式
来源:互联网 发布:java生成两个构造函数 编辑:程序博客网 时间:2024/05/22 21:10
数据结构实验之栈二:一般算术表达式转换成后缀式
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
输入
输入一个算术表达式,以‘#’字符作为结束标志。
输出
输出该表达式转换所得到的后缀式。
示例输入
a*b+(c-d/e)*f#
示例输出
ab*cde/-f*+
提示
来源
示例程序
#include <iostream>#include <cstdlib>#include <cstdio>#include <stack>#define stacksize 1000001using namespace std;int ch(char c){ if(c=='+' || c=='-') return 1; if(c=='*' || c=='/') return 2; if(c=='(') return 3; if(c==')') return 4; return 0;}int main(){ char c; stack<char>ss; while(~scanf("%c",&c) && c!='#') { if(c>='a' &&c<='z') printf("%c",c); else { if(ss.empty()) { ss.push(c); } else if(ch(c)>ch(ss.top())) { if(ch(c) == 4) { while(ss.top()!= '(') { printf("%c",ss.top()); ss.pop(); } ss.pop(); } else { ss.push(c); } } else { if(ss.top() != '(') { printf("%c",ss.top()); ss.pop(); ss.push(c); } else { ss.push(c); } } } } while(!ss.empty()) { printf("%c",ss.top()); ss.pop(); } printf("\n"); return 0;}
0 0
- SDUT2132数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(手写栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- [SDUT](2132)数据结构实验之栈二:一般算术表达式转换成后缀式 ---栈
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT OJ 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 含pod项目的正常目录结构
- CCSprite精灵类创建、坐标系OpenGL、坐标系UIKit坐标系(屏幕坐标系)-----
- SQLite数据库基本用法
- C# 获取系统日期、时间
- Gradle与 gradle plugin 版本不匹配
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SQL语句使用时间和日期的函数
- Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
- 精灵类
- horizon二次开发
- 博客目录
- 使用Post方式提交数据
- 自考毕业设计-PB之不能被小问题卡住了
- django 模板包含中文编码报错