2132-数据结构实验之栈与队列二:一般算术表达式转换成后缀式
来源:互联网 发布:怎么检查网络被盗用 编辑:程序博客网 时间:2024/05/20 13:11
#include <bits/stdc++.h>using namespace std;typedef int ElemType;ElemType level[1123];char st[1123];char res[1123];class Stack{private: ElemType *up; /// 指向栈顶 ElemType *base; /// 指向栈底 ElemType length; /// sizepublic: Stack(); /// 初始化实现栈的初始化 void push(ElemType x); /// 入栈 void pop(); /// 出栈 ElemType top(){return *(up - 1);} /// 返回栈顶元素 ElemType size(){return length;} /// 返回栈的大小 bool empty(){return 0 == length;} /// 判断栈是否为空};bool levelcmp(char a, char b); /// 优先级比较int main(){ level['+'] = level['-'] = 1; level['*'] = level['/'] = 2; while(cin >> st) { Stack Q; int p = 0; for(int i = 0; st[i]; i++) { if(st[i] == '#') { break; } if(isalnum(st[i])) { res[p++] = st[i]; } else{ if(Q.empty() || Q.top() == '(' || st[i] == '(') { Q.push(st[i]); } else if(st[i] == ')'){ while(!Q.empty() && Q.top() != '(') { res[p++] = Q.top(); Q.pop(); } if(!Q.empty()) { Q.pop(); } } else{ while(!Q.empty() && !levelcmp(st[i],Q.top())) { res[p++] = Q.top(); Q.pop(); } Q.push(st[i]); } } } while(!Q.empty()) { res[p++] = Q.top(); Q.pop(); } res[p] = 0; puts(res); } return 0;}Stack::Stack(){ /// 栈的初始化的具体实现 base = new ElemType; up = base; length = 0;}void Stack::push(ElemType x){ /// 入栈函数的具体实现 *up++ = x; length++;}void Stack::pop(){ /// 出栈函数的具体实现 up--; length--;}bool levelcmp(char a, char b){ /// 符号优先级比较的具体实现 return level[(int) a] > level[(int) b];}
阅读全文
0 0
- 2132 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2132-数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式 sdut-oj
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- 2131-数据结构实验之栈与队列一:进制转换
- css改变背景模糊度不改变其内容模糊度
- 安卓开发高仿QQ空间
- 1019作业
- linux命令---vi编辑器快速定位行数、删除当前行、和删除当前行后面的全部内容
- 2132-数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- OpenGL绘制正四面体
- 访问本地Tomcat服务器 localhost/127.0.0.1:8080/web_app/xx- Connection refused
- 2133-数据结构实验之栈与队列三:后缀式求值
- 树形结构地柜查询子节点
- jTessBoxEditor使用
- 2134-数据结构实验之栈与队列四:括号匹配
- angular2如何识别字符串中的html标签,并按照html来显示视图
- c++ 三目运算符