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

  • 大小: 4KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-08
  • 語言: C/C++
  • 標(biāo)簽: 中綴??后綴??

資源簡介

用dev c++寫的代碼,附有啰里啰嗦的注釋和測試樣例。太簡單了不好意思要分。

資源截圖

代碼片段和文件信息

#include?							//中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式?
#include? //通過使用棧暫存運算符,實現(xiàn)運算符位置的調(diào)整?
#include? //tips:?中綴表達(dá)式即常見的表達(dá)式,可以用二叉樹表示。對該二叉?
#include? //樹進(jìn)行后序遍歷可以得到后綴表達(dá)式(逆波蘭表達(dá)式)。?
#include?
using?namespace?std;

bool?isOperand(char?c); //判斷是否為操作數(shù)(變量)?
bool?isOperator(char?c); //判斷是否為操作符(運算符)?
bool?isHigherOperator(char?achar?b); //判斷操作符a的優(yōu)先級是否高于b?
string?generalToRvsPolish(string?expression);//將中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式?

int?main()
{
while(true)
{
string?expression; //變量由單個字母表示,運算符僅限+-*/()
getline(cinexpression); //中間空格不影響結(jié)果?

string?rvsPolishNotation=generalToRvsPolish(expression);
cout< }
return?0;
}

bool?isOperand(char?c)
{
if((c>=‘a(chǎn)‘&&c<=‘z‘)||(c>=‘A‘&&c<=‘Z‘))
return?true;
else
return?false;
}

bool?isOperator(char?c)
{
if(c==‘+‘||c==‘-‘||c==‘*‘||c==‘/‘||c==‘(‘||c==‘)‘)
return?true;
else
return?false;
}

bool?isHigherOperator(char?achar?b) //a大于b為true,a小于等于b為false?
{
if(a==‘(‘||b==‘(‘) //左括號無優(yōu)先級,可視為既與+-的優(yōu)先級相同,又與*/的優(yōu)先級相同?
return?true;
else?if(b==‘*‘||b==‘/‘)
return?false;
else?if(a==‘*‘||a==‘/‘)
return?true;
else
return?false;
}

string?generalToRvsPolish(string?expression)
{
int?len=expression.length();
char*?rvsPoCharArray=new?char[len]; //暫存后綴表達(dá)式的char數(shù)組?
int?j=0; //rvsPoCharArray當(dāng)前處理的位置下標(biāo)?
stack?operatorStack; //暫存操作符的棧,棧中始終保持上面的操作符的優(yōu)先級高于下面的操作符,這是實現(xiàn)調(diào)整的關(guān)鍵?
for(int?i=0;i {
//cout<<“cur:?“<pression[i]< if(isOperand(expression[i])==true) //若為操作數(shù)直接輸出到rvsPoCharArray?
{
rvsPoCharArray[j]=expression[i];
j++;
}

if(isOperator(expression[i])==true) //字符為操作符,進(jìn)行必要的調(diào)整?
{
if(operatorStack.empty()==true) //棧為空的情況:操作符直接入棧(若

評論

共有 條評論

相關(guān)資源