中綴轉字尾和字首

2021-10-24 22:44:33 字數 1064 閱讀 8373

中綴轉字尾

#include

using

namespace std;

bool

isoperator

(char ch)

intgetpriority

(char ch)

return level;

}string postorder;

void

trans

(string inorder)

s.pop();

}else

else

break;}

s.push

(now);}

}else postorder.

push_back

(now)

;//數字直接加入字尾表示式

}while

(!s.

empty()

)}intmain()

中綴轉字首

思路:從右往左掃瞄求字尾再將得到的字尾表示式逆序輸出就是字首表示式

#include

using

namespace std;

bool

isoperator

(char ch)

intgetpriority

(char ch)

return level;

}string postorder;

void

trans

(string inorder)

s.pop();

}else

else

break;}

s.push

(now);}

}else postorder.

push_back

(now)

;//數字直接加入字尾表示式

}while

(!s.

empty()

)}intmain()

中綴式轉字首式 轉字尾式

1 從左向右讀取字元,新建陣列suffix用來儲存字尾表示式 2 如果遇到 入棧,繼續讀取。3 如果遇到 將棧頂元素依次出棧存到suffix中,直到棧頂元素為 此時將棧頂元素出棧,繼續讀取。4 如果遇到運算子,將其與棧頂元素進行比較,如果該運算子優先順序小於等於棧頂元素,則將棧頂元素出棧,存到suf...

c 實現中綴轉字首,中綴轉字尾,字尾表示式求值

思想 用兩個棧實現,規則如下 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,將其壓入s2 4 遇到運算子時,比較其與s1棧頂運算子的優先順序 4 1 如果s1為空,或棧頂運算子為右括號 則直接將此運算子入棧 4 2 否則,若優先順序比棧頂運算子的...

中綴轉字尾

include using namespace std define max 30 struct stack void initstack stack s char pop stack s void push stack s,char c char top stack s int copare ch...