资源简介
一个简单的后缀表达式求解问题
代码片段和文件信息
/*************************************************************************
> File Name: expression.cpp
> Author:
> Mail:
> Created Time: Mon 05 Jun 2017 09:59:48 PM EDT
************************************************************************/
#include
#include
#include
#include
using namespace std;
int Level( string sOper )
{
char sDta = sOper[0];
switch ( sDta )
{
case ‘+‘:
case ‘-‘:
return 0;
case ‘*‘:
case ‘/‘:
return 1;
case ‘(‘:
return -1;
case ‘)‘:
return 9;
default:
return -100;
}
}
bool IsOperator( char cDta )
{
switch (cDta)
{
case ‘(‘:
case ‘)‘:
case ‘+‘:
case ‘-‘:
case ‘*‘:
case ‘/‘:
return true;
default:
return false;
}
}
void AddStackTopDta( vector& vcDta const stack& stackDta )
{
string sDta = stackDta.top();
if( sDta != “)“ && sDta != “(“ )
{
vcDta.push_back( sDta );
}
}
vector Getexpression( string sExp )
{
stack stackOper;
vector vcDta;
int iPos = 0;
bool bPop = false;
for( int i = 0; i < sExp.length(); ++i )
{
if( IsOperator( sExp[i] ) )
{
if( i > iPos )
{
if( i > iPos )
{
string sCur = sExp.substr( iPos i - iPos );
vcDta.push_back( sCur );
}
if( bPop )
{
if( !stackOper.empty() )
{
AddStackTopDta(vcDta stackOper);
stackOper.pop();
if( !stackOper.empty() )
{
AddStackTopDta(vcDta stackOper);
stackOper.pop();
}
bPop = false;
}
}
}
iPos = i + 1;
string sCurOper = sExp.substr(i 1);
if( sCurOper == “)“ )
{
while( !stackOper.empty() )
{
string sTop = st
相关资源
- 一元多项式的代数运算数据结构课设
- 学生社团管理系统数据结构课程设计
- 运动会管理系统模拟
- 多项式计算
- 小甲鱼98集全套数据结构视频
- (严蔚敏)数据结构视频教程C语言版
- 数据结构c语言版期末考试复习题库
- 电梯模拟C语言数据结构中国地质大学
- 若干城市的信息存入一个带头结点的
- 博弈树树的c实现
- 清华 严蔚敏 《数据结构(c语言版)
- 数据结构大项目家谱管理系统
- c++ 数据结构6种排序算法及关键词比较
- 迷宫问题数据结构 C++编写
- 重言式判别程序源代码
- 校园导航系统
- 数据结构中用栈实现迷宫问题的c++代
- 殷人昆C++数据结构课后习题答案
- 数据结构二叉树代码
- 最小生成树 数据结构
- 邓俊辉数据结构c++版视频资源全集
- 北邮计算机院数据结构课程大作业:
- 数据结构 迷宫问题 C++ 栈方法
- 数据结构 用哈希表做的通讯录
- 教学计划编制系统-数据结构课设源代
- 文章编辑系统含源代码
- 多关键字排序C语言
- 数据结构 严蔚敏 C语言版 括号匹配
- 链表的归并 数据结构 C语言实现
- 数据结构算法与应用--C++语言描述(代
评论
共有 条评论