1003 中綴表示式轉字尾表示式

2021-07-23 05:08:11 字數 967 閱讀 4903

1003. 中綴表示式轉字尾表示式

total:

466accepted:89

time limit: 1sec    memory limit:256mb

description

將中綴表示式(infix expression)轉換為字尾表示式(postfix expression)。

假設中綴表示式中的運算元均以單個英文本母表示,且其中只包含雙目算術操作符+,-,*,/和%。

input

表示中綴表示式的乙個字串(其中只包含運算元和操作符,不包含任何其他字元)

output

表示對應後

綴表示式的乙個字串(其中只包含運算元和操作符,不包含任何其他字元)

sample input

a+b*c-d-e/f
sample output

abc*+d-ef/-

#include #include #include using namespace std;

bool isoper(char a)

int rank(char a)

int main() else else

op.push(str[i]);}}

}while(!op.empty())

}

基本演算法,利用棧:

中綴表示式轉字尾表示式的演算法較為簡單,採用棧來實現。規則如下:

遇到數字:直接輸出

遇到'(':壓棧

遇到')':持續出棧,如果出棧的符號不是'('則輸出,否則終止出棧。

遇到符號則判斷該符號與棧頂符號的運算優先順序,如果棧頂符號的運算優先順序高,則出棧並輸出,直到優先順序相等或棧為空;如果棧頂符號的運算優先順序低於當前符號的運算優先順序,則將當前符號壓棧。

處理完字串後將棧中剩餘的符號全部輸出。

SzNOI c003 中綴表示式轉字尾表示式

個人覺得我寫的應該是目前網上寫的版本比較簡單的了。這也是我開部落格的原因,盡量寫出簡單的 一方面可以鞏固自己,一方面也能方便別人 中綴表示式轉化為字尾表示式是通過棧實現 思路是,寫兩個函式,分別是算術操作符的優先順序,這個想法在資料結構 用物件導向方法與c 裡面這本書有大概提到 isp是棧內優先數,...

9 中綴表示式轉成字尾表示式

private static int add 1 private static int sub 1 private static int mul 2 private static int div 2 寫乙個方法,返回對應的優先順序數字 public static int getvalue strin...

中綴表示式轉字尾表示式

using system using system.collections.generic using system.text namespace 中綴表示式轉字尾表示式 class convert public void run top break case case while top 1 st...