数据结构实验之栈二:一般算术表达式转换成后缀式
来源:互联网 发布:mac版b站 编辑:程序博客网 时间:2024/05/21 19:31
题目描述
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
输入
输入一个算术表达式,以‘#’字符作为结束标志。
输出
输出该表达式转换所得到的后缀式。
示例输入
a*b+(c-d/e)*f#
示例输出
ab*cde/-f*+
提示
来源
示例程序
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char str[50],zhan[50] = {'\0'},st[50]; char *p = st; int tmp = -1,k = 0,i,j; for(i = 0;; i++) { scanf("%c",&st[i]); if(st[i] == '#') break; } p = st; i = 0; while(*p != '#') { if(*p == '(') { zhan[++tmp] = *p; } else if(*p == ')') { while(zhan[tmp] != '(') { str[i++] = zhan[tmp--]; } tmp--; } else if(*p == '+' || *p == '-' || *p == '*' || *p == '/') { if(tmp == -1 || ((zhan[tmp] == '+' || zhan[tmp] == '-' || zhan[tmp] == '(')&&(*p == '*' || *p == '/'))) zhan[++tmp] = *p; else if(zhan[tmp] == '(') zhan[++tmp] = *p; else { while(1) { str[i++] = zhan[tmp--]; if(zhan[tmp] == '(' || tmp == -1) { zhan[++tmp] = *p; break; } } } } else { str[i++] = *p; } p++; } while(tmp != -1) { str[i++] = zhan[tmp--]; } for(j = 0;j<i;j++) printf("%c",str[j]); printf("\n"); return 0;}
0 0
- SDUT2132数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(手写栈)
- 数据结构实验之栈二:一般算术表达式转换成后缀式(栈)
- [SDUT](2132)数据结构实验之栈二:一般算术表达式转换成后缀式 ---栈
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT OJ 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- SDUT 2132 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 集成测试简介
- 链接程序和库指南
- 二叉树的insertLC
- WebService处理大数据量数据
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- Tomcat配置JVM参数步骤
- SQL Server 2008下轻松调试T-SQL语句
- tomcat启动了但是访问不了8080
- java获取当前类的绝对路径
- 二叉查找树
- 基于ZeroMQ的聊天室设计实现
- Hash 函数及其重要性
- js调用打印预览功能(IE)