表、栈和队列
2016-01-29 18:47
399 查看
表、栈和队列是最简单和最基本的三种数据结构——《数据结构与算法分析—— C 语言描述》
i. 多项式 ADT
i. 基数排序(多趟桶式排序)
代码实现:
i. 多重表
链表的游标实现
代码实现:
应用范畴:
i. 平衡符号
i. 后缀表达式
有中缀表达式 s1 : ((2 + 3)* 8 + 5 + 3)* 6
总能转换成后缀表达式 s2 : 2 3 + 8 * 5 + 3 + 6 *
编写程序计算后缀表达式 s2 的值,代码实现:
View Code
i. 函数调用
表
应用范畴:i. 多项式 ADT
i. 基数排序(多趟桶式排序)
代码实现:
i. 多重表
链表的游标实现
代码实现:
栈
栈又叫做 LIFO(后进先出)表——《数据结构与算法分析—— C 语言描述》应用范畴:
i. 平衡符号
i. 后缀表达式
有中缀表达式 s1 : ((2 + 3)* 8 + 5 + 3)* 6
总能转换成后缀表达式 s2 : 2 3 + 8 * 5 + 3 + 6 *
编写程序计算后缀表达式 s2 的值,代码实现:
#include <iostream> #include <string> #include <sstream> #include <stack> using namespace std; class Infix2Postfix { public: string operator()(const string &s) { istringstream iss(s); string c; while (iss >> c) { if (isOperator(c) == 0) { output.append(c).append(" "); continue; } switch (isOperator(c)) { case 1: case 2: case 3: popWhileLow(isOperator(c)); sk.push(c); break; case 4: popWhileNoLeftBracket(); break; } } while (!sk.empty()) { output.append(sk.top()); output.append(" "); sk.pop(); } return output; } private: void popWhileLow(const int op) { if (sk.empty()) return; while (op > isOperator(sk.top())) { output.append(sk.top()); sk.pop(); } if (sk.top() != "(") { output.append(sk.top()); output.append(" "); sk.pop(); } } void popWhileNoLeftBracket() { if (sk.empty()) return; while (sk.top() != "(") { output.append(sk.top()); output.append(" "); sk.pop(); } sk.pop(); } int isOperator(const string &s) const { if (s == "+" || s == "-") return 1; if (s == "*" || s == "/") return 2; if (s == "(") return 3; if (s == ")") return 4; return 0; } stack<string> sk; string output; }; int main() { string infix = "( ( 2 + 3 ) * 8 + 5 + 3 ) * 6"; Infix2Postfix i2p; cout << i2p(infix) << endl; return 0; }
View Code
i. 函数调用
相关文章推荐
- [转载]"百度方法+"案例—从持续集成到持续交付
- docker: 解决centos7下cgroup.procs: no such device的错误
- 工作流Activiti 变量设置问题
- hdu 2201 熊猫阿波的故事
- Windows的隐藏分区
- 分布式缓存
- fuel 60搭建openstack云
- 【BZOJ】1006 神奇的国度
- 深入学习JavaScript: apply 方法 详解(转)——非常好
- php 多线程
- thinkphp 中 使用七牛云上传
- Android.mk详解
- 如何使用Method Swizzle实现友盟统计
- 获取中文字符串的拼音
- 损失函数(Loss Function) -1
- Hadoop中SequenceFile的使用
- hdu1426&3111 数独问题
- 微博URL短网址生成算法原理及(java版、php版实现实例)
- james mail安装总结
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?