1)求輸入串的逆序。
2)檢查輸入的下一元素。
3)假如是運算元,把它新增到輸出串中。
4)假如是閉括號,將它壓棧。
5)假如是運算子,則
- i)假如棧空,此運算子入棧。
- ii)假如棧頂是閉括號,此運算子入棧。
- iii)假如它的優先順序高於或等於棧頂運算子,此運算子入棧。
- iv)否則,棧頂運算子出棧並新增到輸出串中,重複步驟5。
6)假如是開括號,棧中運算子逐個出棧並輸出,直到遇到閉括號。閉括號出棧並丟棄。
7)假如輸入還未完畢,跳轉到步驟2。
8)假如輸入完畢,棧中剩餘的所有操作符出棧並加到輸出串中。
9)求輸出串的逆序。
中綴表示式轉字首表示式
在字首表示式中,運算子直接放在運算元的前面。例如 a b ab。a b c a bc。a c h b d a ch bd。其實就是表示式樹的先序遍歷。字首表示式得到字尾表示式過程 有運算元跟運算子棧。中綴表示式中沒遇到乙個運算元,入運算元棧,運算子棧跟字首得到字尾表示式一樣。假設剛從運算子棧中彈出乙...
字首轉中綴(表示式)
問題描述 字首轉中綴示例,允許有多餘括號 4 2 3 6 4 2 3 6 3 4 2 5 3 4 2 5 3 4 2 5 3 4 2 5 思路1 遞迴 1.從左向右掃瞄 2.遇到操作符,則遞迴求解,返回新字串,遇到數字,則直接返回數字串,例如 case return exp exp 注意加括號,保證...
中綴表示式轉字首和字尾表示式
之前筆試中國電信it研發中心的時候,遇到了幾個前 中 字尾表示式的相互轉換,當時忘得差不多了,今天好好把該方面的知識好好複習,並把相關 和思路自己縷了一遍 將中綴表示式轉換為字首表示式 遵循以下步驟 1 初始化兩個棧 運算子棧s1和儲存中間結果的棧s2 2 從右至左掃瞄中綴表示式 3 遇到運算元時,...