调度场算法&&中缀表达式=>后缀表达式
2024-09-08 07:10:49
#include<stdio.h>
#include<string.h>
int main(void){
char ch,stro[1001],stack[1001];
int numstack[1001];
int top=-1,head=-1;
/*************************************************/
/*将中缀表达式转化为后缀表达式*/
while((ch=getchar())!=EOF){
if(ch==' ') continue;
else if(ch<='9'&&ch>='0')
stro[++head]=ch;
else if(ch=='+'||ch=='-'){
if(top==-1)
stack[++top]=ch;
else{
while(true){
if(stack[top]=='+'||stack[top]=='-'){
stro[++head]=stack[top];
top--;
}else{
stack[++top]=ch;
break;
}
}
}
}else if(ch=='('){
stack[++top]=ch;
}else if(ch==')'){
while(true){
if(stack[top]!='('){
stro[++head]=stack[top];
top--;
}else{
top--;
break;
}
}
}
} while(top>=0){
stro[++head]=stack[top];
top--;
} stro[++head]='\0';
/*************************************************/
/*转化结束*/ /*开始计算*/
top=-1;
for(int i=0;stro[i]!='\0';i++){
if(stro[i]<='9'&&stro[i]>='0')
numstack[++top]=stro[i]-'0';
else if(stro[i]=='+'){
numstack[top-1]+=numstack[top];
top--;
}else if(stro[i]=='-'){
numstack[top-1]-=numstack[top];
top--;
}
}
printf("%d",numstack[0]);
return 0;
}
逆波兰
最新文章
- Webdriver设置Chrome属性
- 微软Nokia 222:可拍照可上网 售价37美元 32GB的microSD卡扩展
- WPF Litbox样式和模板
- 设置textView或者label的行间距方法
- 转一篇NGINX+UWSGI+PYTHON+DJANGO部署文档
- Request对象 --web浏览器向web服务端的请求
- Python 入门教程 9 ---- A Day at the Supermarket
- Storm流计算之项目篇(Storm+Kafka+HBase+Highcharts+JQuery,含3个完整实际项目)
- Bootstrap 按钮分组
- Android studio登录界面
- python中创建实例属性
- 零基础自学Python十天,写了一款猜数字小游戏,附源码和软件下载链接!
- jsp标签库选择框示例
- winrar+目录穿透复现
- 修正mui的上拉加载和下拉刷新的一次未完成就执行下一次的请求
- [EXP]CVE-2018-2628 Weblogic GetShell Exploit
- mysql 性能指标
- StringDemo
- 顺平讲try catch finally throw throws(精华)
- Hdu1151 Air Raid(最小覆盖路径)
热门文章
- 如何使用命令将文件夹中的文件名(包括路径)写入到txt文件中
- Codeforces Round #647 (Div. 2) C. Johnny and Another Rating Drop(数学)
- 【poj 1061】青蛙的约会(数论--拓展欧几里德 求解同余方程)
- 【noi 2.6_3531】判断整除(DP)
- 【noi 2.6_6252】带通配符的字符串匹配(DP)
- Java——方法及构造方法、intellij IDEA中的一些快捷键
- 解决宝塔面板没有命令行问题 &;&; 查看宝塔面板项目环境
- HTML5 dataset All In One
- Xcode 格式化 SwiftUI代码
- js &; bitwise-operators