数据结构实验之栈与队列二:一般算术表达式转换成后缀式
来源:互联网 发布:linux lcd驱动移植 编辑:程序博客网 时间:2024/06/06 17:35
数据结构实验之栈与队列二:一般算术表达式转换成后缀式
Time Limit: 1000MS Memory Limit: 65536KBSubmit StatisticProblem Description
对于一个基于二元运算符的算术表达式,转换为对应的后缀式,并输出之。
Input
输入一个算术表达式,以‘#’字符作为结束标志。
Output
输出该表达式转换所得到的后缀式。
Example Input
a*b+(c-d/e)*f#Example Output
ab*cde/-f*+Hint
Author
#include <iostream>#include<stdio.h>#include <stdlib.h>#include <string>using namespace std;#define maxsize 10000#define numsize 10000typedef char element;typedef int status;typedef struct{ element *top; element *base; int stacksize;}sqstack;status initstack(sqstack &s){ s.base=(element *)malloc(maxsize * sizeof(element)); if(!s.base)return -1; s.top=s.base; s.stacksize=maxsize; return 0;}void clearstack(sqstack &s){ s.top=s.base;}void push(sqstack &s,element e){ if(s.top-s.base>=s.stacksize) { s.base=(element *)realloc(s.base,maxsize+numsize*sizeof(element)); s.top=s.base+maxsize; s.stacksize+=numsize; } *(s.top)=e; s.top++;}void pop(sqstack &s){ s.top--;}element get(sqstack &s){ element e; e=*(s.top-1); return e;}status emptystack(sqstack &s){ if(s.base==s.top) return 1; else return 0;}int cmp(element c){ if(c=='+'||c=='-') return 1; else if(c=='*'||c=='/') return 2; else if(c=='(') return 3; else if(c==')') return 4; else return 0;}void putstack(sqstack &s){ while(s.top>s.base) { printf("%c",*(s.top-1)); s.top--; }}void hou(sqstack &s,char c){ if(c<='z'&&c>='a') printf("%c",c); else { if(emptystack(s)) push(s,c); else { if(cmp(c)>cmp(get(s))) { if(c==')') { while(get(s)!='(') { printf("%c",get(s)); pop(s); } pop(s); } else push(s,c); } else { if(get(s)=='(') { push(s,c); } else { printf("%c",get(s)); s.top--; push(s,c); } } } }}int main(){ sqstack s; initstack(s); element c; while(~scanf("%c",&c)&&c!='#') { hou(s,c); } putstack(s); return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式 sdut-oj
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2132 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2132-数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 【转载】在Linux下限制用户登陆IP
- hive --service hiveserver2
- hwi(hive web interface)-hive web页面的搭建
- Hadoop中Speculative Task调度策略
- 搭建antlr4.2.2开发环境
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- JAVA如何避免死锁的几个常见方法
- awk输出单引号
- 很牛的人的日志
- 单例实现的七种方式
- 使用hive自定义函数pom.xml的写法
- AM2 开发日志1 10.16
- oracle的instr函数在hive上面的实现
- sqooooop命令总结: