java 前綴、中綴、后綴表達(dá)式是怎樣的?
前綴、中綴、后綴表達(dá)式是怎樣的?(1)表達(dá)式有三種形式:中綴表達(dá)式:運算符放在兩個操作數(shù)的中間,如:(2,1)*3;后綴表達(dá)式:不含括號,運算符放在兩個操作數(shù)的后面,所有計算嚴(yán)格按照運算符出現(xiàn)的順序從
前綴、中綴、后綴表達(dá)式是怎樣的?
(1)表達(dá)式有三種形式:
中綴表達(dá)式:運算符放在兩個操作數(shù)的中間,如:(2,1)*3;
后綴表達(dá)式:不含括號,運算符放在兩個操作數(shù)的后面,所有計算嚴(yán)格按照運算符出現(xiàn)的順序從左到右進(jìn)行(不考慮運算符的優(yōu)先級規(guī)則,如:21)3*;
前綴表達(dá)式:與后綴表達(dá)式相同,不包含方括號,運算符放在兩個操作數(shù)前面,如:*213。
(2)表達(dá)式計算:
由于后綴表達(dá)式中沒有括號,因此無需確定優(yōu)先級,并且計算嚴(yán)格從左到右進(jìn)行,因此在計算機(jī)中計算后綴表達(dá)式比計算中綴表達(dá)式簡單得多。
中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式的算法思想:
·讀取數(shù)字時,直接發(fā)送到輸出隊列
·讀取運算符T時,
A.在堆棧中彈出優(yōu)先級高于或等于T的所有運算符,發(fā)送到輸出隊列;
B.T將其放在堆棧上
·讀取左括號時,總是將其推入堆棧中
·讀取右括號時,將其放在靠近堆棧頂部的第一個左括號中,面操作符逐個彈出,發(fā)送到輸出隊列,然后丟棄左括號。
使用后綴表達(dá)式進(jìn)行計算的具體方法如下:
·建立一個堆棧S
·從左到右讀取后綴表達(dá)式,讀取數(shù)字時將其轉(zhuǎn)換成數(shù)值并按入堆棧S,然后讀取運算符時從堆棧中依次彈出y和X兩個數(shù)字,然后以“x運算符Y”的形式計算結(jié)果,然后將其壓入堆棧S
·如果后綴表達(dá)式?jīng)]有完全讀取,則重復(fù)它前綴表達(dá)式是一個非常有用的表達(dá)式,它將中綴表達(dá)式轉(zhuǎn)換為可以通過簡單運算得到結(jié)果的表達(dá)式。例如,(a,b)*(C,d)被轉(zhuǎn)換成*,a,b,C,d。中綴的優(yōu)點是它只能通過使用堆棧中的表達(dá)式來解決任意兩種運算。其操作方式是:如果當(dāng)前字符(或字符串)是數(shù)字或變量,則將其推入堆棧;如果是運算符,則堆棧頂部的兩個元素將彈出堆棧并執(zhí)行相應(yīng)的操作,然后將結(jié)果推入堆棧。前綴表達(dá)式掃描完成后,堆棧中的內(nèi)容就是中綴表達(dá)式操作的最終結(jié)果。
前綴表達(dá)式的公式用法?
例如,要表達(dá)35:
35
35
35
分別是前綴、中綴和后綴表達(dá)式。前綴、中綴和后綴是指操作符號位置的差異!