资源简介
使用逆波兰式的方式进行表达式求值。在控制台下可进行多组数据的输入处理。
代码片段和文件信息
#include
#include
#include
using namespace std;
//比较lhs的优先级是否不高于rhs,rhs表示栈顶的符号
bool priority(char lhschar rhs)
{
if (rhs==‘(‘)
return false;
if (lhs==‘+‘||lhs==‘-‘)
return true;
if ((lhs==‘*‘||lhs==‘/‘)&&(rhs==‘*‘||rhs==‘/‘))
return true;
return false;
}
//将中缀表达式转换成后缀式
string inPrefix2postPrefix(string str)
{
string res;//后缀表达式结果
stack s;
for (int i=0;i {
//如果是数字,直接加入后缀表达式结果中
if (isdigit(str[i]))
{
while (i {
res+=str[i];
i++;
}
i--;//注意这里要将i减1,因为上面的循环将i多右移了一位,如果不减1,会漏掉一位
res+=“ “;
}
else //如果是符号,需要与栈顶的元素进行比较
{
//如果栈为空,将其直接压入栈中;如果是左括号(,也直接将其压入栈中
if (s.empty()||str[i]==‘(‘)
s.push(str[i]);
else
- 上一篇:9716 矩形的并
- 下一篇:c++实现apriori算法(内附测试数据)
相关资源
- Thinking in C++中文版
- C++语言程序设计_第四版_郑莉_高清p
- 东南大学C++课件-何洁月80讲(总).
- DevC++
- C/C++实验系统
- 一个月挑战c++
- vsC++编程新手指导
- C++语言编程器
- VS2008 windows应用程序C++
- C++深入版
- C++PPT
- C++沉思录
- c++核心编程技术
- C++出错提示英汉对照
- c++/c语言学习系统
- C和C++安全编码(中文版)
- c++基础教程
- VC++6.0
- Microsoft Visual C++ 2010
- 嵌入式CC++语言精华文章集锦
- 交通灯管理仿真程序
- CC++库函数
- C++_STL使用例子大全
- C C++精华帖合辑(新手必看)
- C++ 基本语法及实例说明
- 《算法竞赛入门经典》
- C++API
- c++深度剖析木马程序
- c++练习题
- vc++6.0初学入门教程(PDF编辑版)
评论
共有 条评论