资源简介
一个简单的后缀表达式求解问题
代码片段和文件信息
/*************************************************************************
> 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
相关资源
- 利用C++哈希表的方法实现电话号码查
- 学校超市选址问题(数据结构C语言版
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
- (严版C语言版数据结构源码.rar
评论
共有 条评论