题目链接

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int ok(char ch, char sh)
{
if(sh == '(')return 1;
if((ch == '*' || ch == '/' || ch == '%') && (sh == '+' || sh =='-'))
return 1;
else return -1;
}
int main()
{
int i = 0,n, top = -1;
char exp[1055], str[1005], ch;
while(~scanf("%c", &ch) && ch != '#')
{
if(ch >= 'a' && ch <= 'z')exp[i++] = ch;
else if(ch == '(') str[++top] = ch;
else if(ch == ')')
{
while(top != -1)
{
exp[i ++] = str[top];
top --;
if(str[top] == '(')
{
top --;
break;
}
}
}
else {
if(top == -1 || ok(ch,str[top]) > 0)
{
str[++top] = ch;
}
else
{
while(top >= 0 && ok(ch,str[top]) < 0)
{
exp[i ++] = str[top--];
}
str[++top] = ch;
}
}
}
while(top != -1)
{
exp[i++] = str[top--];
}
exp[i] = '\0';
printf("%s\n",exp);
return 0;
}

数据结构实验之栈与队列二:一般算术表达式转换成后缀式(SDUT 2132)的更多相关文章

  1. SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式

    数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...

  2. SDUT-2131_数据结构实验之栈与队列一:进制转换

    数据结构实验之栈与队列一:进制转换 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入一个十进制非负整数,将其转换成对 ...

  3. 数据结构实验之栈与队列一:进制转换(SDUT 2131)

    题目链接 题解: 特判一下n==0的时候. #include <bits/stdc++.h> using namespace std; int a[1000]; int main() { ...

  4. SDUT-2088_数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description refresh最近发 ...

  5. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

  6. SDUT-1479_数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的行编辑程序的功能是:接受用 ...

  7. SDUT-3335_数据结构实验之栈与队列八:栈的基本操作

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 堆栈是一种基本的数据结构.堆栈具 ...

  8. SDUT-3334_数据结构实验之栈与队列七:出栈序列判定

    数据结构实验之栈与队列七:出栈序列判定 Time Limit: 30 ms Memory Limit: 1000 KiB Problem Description 给一个初始的入栈序列,其次序即为元素的 ...

  9. SDUT-3332&3333_数据结构实验之栈与队列五:下一较大值

    数据结构实验之栈与队列六:下一较大值 Time Limit: 150 ms Memory Limit: 8000 KiB Problem Description 对于包含n(1<=n<=1 ...

随机推荐

  1. jvm的内存区域介绍

    什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的 ...

  2. .netcore 上传

    BS 上传文件,就是 <input type="file" name="file" />  这个选择文件之后,浏览器保存了文件路径,上传的时候,把这 ...

  3. 如何判断 Session是否存在

    相信很多人都跟我一样,在写网页中有些位置通过其他网页设置了 Session然后跳转到目标页面就需要要用 Session,但是那个位置如果是直接打开的就用不到 Session,那么问题就来了,例如:系统 ...

  4. 【shell脚本】$ 在shell脚本中的使用

    shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数. 例如,第一个参数是$1,第二个 ...

  5. js数组破坏性和非破坏性方法

    数组原型方法:破坏性.会改变数组. shift().unshift().pop().push().splice();resver(),sort().在对数字排序的时候不能用原来的方法了,那样会导致值溢 ...

  6. 5.管道 Pipe

    /*管道(Pipe)*/ Java NIO 管道是 /*2 个线程*/ 之间的 /*单向*/数据连接 Pipe 有一个 source 通道 和 一个 sink 通道.数据会被写到 sink 通道,从s ...

  7. LINUX安装Tree软件包

     1.将镜像光盘放入光驱中 查看当前LINUX版本号:cat  /etc/redhat-release 2.挂载镜像文件 mount  /dev/cdrom /mnt mount :挂载设备命令 /d ...

  8. storedownloadd占用cpu高

    禁用App Store的自动更新 

  9. 一:(1.1)了解MVC之路由重写

    Mvc默认路由 //系统的Url路由规则 routes.MapRoute( name: "Default", url: "{controller}/{action}/{i ...

  10. 说一下 atomic 的原理?(未完成)

    说一下 atomic 的原理?(未完成)