舉例:中綴表示式求字尾表示式
a+b*(c-d)-e/f
根據運算子的優先順序給表示式加上括號 ((a+(b*(c-d)))-(e/f))
將最外層的符號先提取到對應括號的右側:(字首表示式與之相反,是將運算子移動到對應括號的左側,不再舉例)
中綴表示式求字尾表示式:
a+b*(c-d)-e/f
從左到右將遇到的運算子入棧,遇到運算元直接將其寫下來就行
在將運算子入棧的時候先看看是否即將入棧的運算子優先順序是否高於棧頂運算子的優先順序,如果高則直接入,如果低,那麼就進行出棧,直到棧頂的運算子優先順序低於即將要入的運算子優先順序,將彈出的運算子 跟在剛剛的運算元後面就行。
如果入棧的時候運算子是右括號那麼就出棧,直到出棧遇到左括號再停止出棧
先從右向左遍歷中綴表示式,找到從右到左的第乙個優先順序最低的運算子來做二叉樹的根,確定根之後那麼它的左右子樹基本確定,然後第二次遍歷中綴表示式找第二優先順序最低的運算子,然後根據剛剛的大致位置確定第二最低優先順序運算子的位置
字首 中綴 字尾表示式
它們都是對表示式的記法,因此也被稱為字首記法 中綴記法和字尾記法。它們之間的區別在於運算子相對與運算元的位置不同 字首表示式的運算子位於與其相關的運算元之前 中綴和字尾同理。舉例 3 4 5 6 就是中綴表示式 3 4 5 6 字首表示式 3 4 5 6 字尾表示式 中綴表示式 中綴記法 中綴表示式...
字首 中綴 字尾表示式
最近筆試的過程中老是有中綴轉換為字首,或是中綴轉換為字尾的問題,資料結構學了這麼久真的是記不清了,今天重新複習了一下,藉此機會總結一下 中綴 我們正常理解的表示式的書寫方式 字首 操作符全部位於運算元的前面,運算元的順序為從右到左依次壓棧的順序,操作符為從左到右依次壓棧的順序 字尾 不包含括號,運算...
字首 中綴 字尾表示式
它們都是對表示式的記法,因此也被稱為字首記法 中綴記法和字尾記法。它們之間的區別在於運算子相對與運算元的位置不同 字首表示式的運算子位於與其相關的運算元之前 中綴和字尾同理。舉例 3 4 5 6 就是中綴表示式 3 4 5 6 字首表示式 3 4 5 6 字尾表示式 中綴表示式 中綴記法 中綴表示式...