博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ467中缀式变后缀式
阅读量:6264 次
发布时间:2019-06-22

本文共 1561 字,大约阅读时间需要 5 分钟。

中缀式变后缀式

时间限制:
1000 ms  |  内存限制:
65535 KB
难度:
3
 
描述
人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。
 
输入
第一行输入一个整数n,共有n组测试数据(n<10)。
每组测试数据只有一行,是一个长度不超过1000的字符串,表示这个运算式的中缀式,每个运算式都是以“=”结束。这个表达式里只包含+-*/与小括号这几种符号。其中小括号可以嵌套使用。数据保证输入的操作数中不会出现负数。
数据保证除数不会为0
输出
每组都输出该组中缀式相应的后缀式,要求相邻的操作数操作符用空格隔开。
样例输入
21.000+2/4=((1+2)*5+1)/4=
样例输出
1.000 2 4 / + =1 2 + 5 * 1 + 4 / =
View Code
1   2 #include 
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 char str[1005]; 9 char pp[7]={
'+','-','*','/' ,'(' ,')'};10 bool cmp(char a,char b)11 {12 char ch[6][6]=13 { 14 {
'>','>','<','<','<','>'},//栈顶和新输入的比较 15 {
'>','>','<','<','<','>'},16 {
'>','>','>','>','<','>'},17 {
'>','>','>','>','<','>'},18 {
'<','<','<','<','<','='},19 {
'>','>','>','>',' ','>'}20 };21 for(int i=0;i<6;i++)22 {23 if(a==pp[i])a=i;24 if(b==pp[i])b=i;25 }26 if(ch[a][b]=='>'||ch[a][b]=='=')return true;27 return false;28 }29 int main()30 {31 int i,j,k,T;32 scanf("%d%*c",&T);33 while(T--)34 {35 stack
s;36 memset(str,0,sizeof(str));37 gets(str);38 int len = strlen(str);39 s.push(str[len-1]);//要先等号入栈 40 for(i=0;i

 

转载于:https://www.cnblogs.com/zhaojiedi1992/archive/2012/11/14/zhaojiedi1992_2012_10_2600.html

你可能感兴趣的文章
数据库恢复之丢失联机重做日志文件的恢复
查看>>
C#发邮件
查看>>
3_1 wp8应用生命周期与导航事件[wp8特色开发与编程技巧]
查看>>
读取表结构到变量中
查看>>
SQL Server安全 2:身份验证
查看>>
算法集锦(二)
查看>>
ThinkPHP5 公共函数
查看>>
Java 基本数据类型
查看>>
LNMP 参数调优 ( 无注释 )
查看>>
pageoffice
查看>>
putty提供的两个文件传输工具PSCP、PSFTP详细介绍
查看>>
好的程序员有3种美德,
查看>>
BAT面试需要什么样的程序员?
查看>>
认识Java Core和Heap Dump
查看>>
NYOJ61 传纸条(一) 双线程dp
查看>>
数组拍平最优解
查看>>
leetcode 303. Range Sum Query - Immutable
查看>>
java中的生产者模式
查看>>
Rabin Karp 算法实战
查看>>
IIS7启用静态压缩
查看>>