数据结构实验之栈二:一般算术表达式转换成后缀式
来源:互联网 发布:安卓软件 知乎 编辑:程序博客网 时间:2024/05/21 17:53
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
输入
输入一个算术表达式,以‘#’字符作为结束标志。
输出
输出该表达式转换所得到的后缀式。
示例输入
a*b+(c-d/e)*f#
示例输出
ab*cde/-f*+
提示
#include<stdio.h>//#include<string.h>#include<stack>#include<iostream>using namespace std;int main(){ stack<int>q; char str[100]; int i;scanf("%s",&str); for(i=0;str[i]!='#';i++) { if(str[i]>='a'&&str[i]<='z') printf("%c",str[i]); else if(str[i]=='(') q.push(str[i]); else if(str[i]==')') { while(q.top()!='(') { printf("%c",q.top()); q.pop(); } q.pop(); } else if(str[i]=='+'||str[i]=='-') { while(!q.empty()&&q.top()!='(') { printf("%c",q.top()); q.pop(); } q.push(str[i]); } else if(str[i]=='*'||str[i]=='/') { while(!q.empty()&&q.top()!='('&&(q.top()=='*'||q.top()=='/')) { printf("%c",q.top()); q.pop(); } q.push(str[i]); } } while(!q.empty()) { printf("%c",q.top()); q.pop(); } printf("\n"); return 0;}
来源
0 0
- SDUT2132数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(手写栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- [SDUT](2132)数据结构实验之栈二:一般算术表达式转换成后缀式 ---栈
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT OJ 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 【数据结构】二叉树的遍历
- Telnet英文全称
- 第十周项目四(1)——大奖赛计分
- 解决Qt5屏幕翻转问题
- 猜数字游戏
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 理解C++复杂声明
- c#试验九4678合集
- 第十周项目4-大奖赛计分4
- 利用jquery给指定的table动态添加一行、删除一行
- 卸载已安装的程序(非系统自带的程序)
- C++字符串
- C#特殊字符处理
- OpenCV2.3使用摄像头和视频