例如:Exp=a*b+(c-d/e)*f
若 Exp=a*b+(c-d/e)*f 則它的
前綴式為: +*ab*-c/def
中綴式為: a*b+c-d/e*f
后綴式為: ab*cde/-fx+
綜合比較它們之間的關(guān)系可得下列結(jié)論:
1.三式中的 “操作數(shù)之間的相對次序相同”;
(二叉樹的三種訪問次序中,葉子的相對訪問次序是相同的)
2.三式中的 “運(yùn)算符之間的的相對次序不同”;
3.中綴式丟失了括弧信息,致使運(yùn)算的次序不確定;
(而前綴和后綴運(yùn)算只需要一個存儲操作數(shù)的棧,而中綴求值需要兩個棧,符號棧和操作數(shù)棧)
4.前綴式的運(yùn)算規(guī)則為:連續(xù)出現(xiàn)的兩個操作數(shù)和在它們之前且緊靠它們的運(yùn)算符構(gòu)成一個最小表達(dá)式;
5.后綴式的運(yùn)算規(guī)則為:
·運(yùn)算符在式中出現(xiàn)的順序恰為表達(dá)式的運(yùn)算順序;
·每個運(yùn)算符和在它之前出現(xiàn)且緊靠它的兩個操作數(shù)構(gòu)成一個最小表達(dá)式。
6.中綴求值的運(yùn)算規(guī)則:
如果是操作數(shù)直接入棧。
如果是運(yùn)算符。這與當(dāng)前棧頂比較。個如果比當(dāng)前棧頂高,則入棧,如果低則說明當(dāng)前棧頂是最高的必須把他先運(yùn)算完了。用編譯原理的話就是說當(dāng)前棧頂已經(jīng)是最左素短語了)
其實中綴表達(dá)式直接求值和把中綴表達(dá)式轉(zhuǎn)化成后綴表達(dá)式在求值的過程驚人的相似,只不過是直接求值是求出來,而轉(zhuǎn)化成后綴是輸出來。
數(shù)據(jù)結(jié)構(gòu)在計算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合試卷中占有較高的分值比重,因此是計算機(jī)專業(yè)課復(fù)習(xí)的重點(diǎn)科目,建議同學(xué)們在復(fù)習(xí)過程中能夠廣泛參考復(fù)習(xí)資料,同時結(jié)合自身的復(fù)習(xí)情況,找準(zhǔn)方法,取得復(fù)習(xí)的超高效率和良好效果。