#include #include using namespace std;
//棧內優先順序
int isp(char a)
}//棧外優先順序
int icp(char a)
}//計算函式
int cal(int a, int b, char c)
}char in_order_expression[1000];//中綴表示式
char post_order_expression[1000];//字尾表示式
stackcalculation;//計算的時候到棧
stacktmp;//中綴改字尾的時候到過渡棧
int i = 0, j = 0;
int main(int argc, const char * argv)
else
//這裡的i不能++,要保證出棧並輸出之後還能繼續對這個符號進行操作
else if (icp(in_order_expression[i]) < isp(tmp.top()))
//只有左右括號的時候會執行這個操作
else
}cout << i << "次迭代成功" << endl;//做個標記
}
//計算部分
i = 0;
do else
cout << i << "次計算成功" << endl;//做個標記
}while (i < j);
cout << calculation.top() << endl;
return 0;
}
中綴表示式轉字尾表示式並計算字尾表示式的值
中綴表示式轉字尾表示式思路 首先給用到的每個操作符如 等按照他們原本的計算優先順序定義兩個代表優先順序的數值,如instackpri代表入棧之後的優先順序,outstackpri代表入棧之前的優先順序.然後掃瞄表示式,如果是數字,直接輸出,如果是 則將棧頂操作符依次出棧,直到遇到 如果是其他操作符,...
中綴表示式轉字尾表示式,並求值
資料結構之棧的應用 先實現求值這一步吧,已知字尾表示式 轉換這一環節待更新 上 中綴表示式轉字尾表示式 seqstack 以及求值 version 1.0 求值,需要自己輸入字尾表示式 2.0 加上轉化功能 演算法 建立乙個運算元棧,自左向右遍歷字尾表示式,遇到乙個運算元就入棧,遇到乙個操作符就從棧...
C 中綴表示式轉字尾表示式
一 中綴表示轉字尾表示的規則 1.遇到操作符時,如果該操作符優先順序高於op stack棧頂的操作符,則直接壓入op stack,如果同級或低於棧頂操作符,則將棧中操作符依次彈出 同時壓入輸出棧 直到遇到比當前操作符優先順序低的,或者遇到了 2.和 都不能進入輸出棧。3.對於操作符 只有 才能將其彈...