91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-13
  • 語言: C/C++
  • 標簽: 數據結構??

資源簡介

一個簡單的后綴表達式求解問題

資源截圖

代碼片段和文件信息

/*************************************************************************
>?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?????{
???????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

評論

共有 條評論