1樓:59分粑粑
轉為字尾表示式是「abcde/+*+ 」。
a+b*(c+d/e) (a+(b*(c+(d/e))))通過根據運算子的優先順序將所有算術單元括起來,該表示式變為:(a+(b*(c+(d/e)))),然後轉換字尾表示式。
字尾:將操作符號移到相應的括號之後,然後變為:(a(b(c(de)/)+)*)+
除去括號後的表示式是字尾表示式:abcde/+*+
2樓:蘑菇西餐
轉化後的字尾表示式為:abcde/+*+
具體分析:
1、初始化一空棧,用來對符號進出棧使用。
2、第一個字元是a,輸出,後面是符號「+」,進棧。輸出的為a。
3、第三個字元是b,輸出,後面是符號「*」,進棧。輸出的為ab。
4、 第五個字元是「(」,依然是符號,因其只是左括號,還未配對,故進棧。輸出的為ab。
5、第六個字元是c,輸出,後面是符號「+」,進棧。輸出的為abc。
6、第八個字元是d,輸出,後面是符號「/」,進棧。輸出的為abcd。
7、後面是字元e,輸出,之後是「)」配對完成。進棧輸出的為abcde。
8、棧頂元素「(」出棧,「/」出棧,「+」出棧,「(」出棧,括號配對完成。
9、之後也是依次出棧,最後結果為:abcde/+*+。
擴充套件資料:
字尾表示式進行計算的通用做法:
可以先建立一個棧s 。從左到右讀表示式,如果讀到運算元就將它壓入棧s中,如果讀到n元運算子(即需要引數個數為n的運算子)則取出由棧頂向下的n項按操作符運算,再將運算的結果代替原棧頂的n項,壓入棧s中 。如果字尾表示式未讀完,則重複上面過程,最後輸出棧頂的數值則為結束。
字尾表示式:也叫逆波蘭表示法(reverse polish notation,rpn,或逆波蘭記法),是一種是由波蘭數學家揚·武卡謝維奇2023年引入的數學表示式方式,在逆波蘭記法中,所有操作符置於運算元的後面,因此也被稱為字尾表示法。逆波蘭記法不需要括號來標識操作符的優先順序。
實際意義:
1、當有操作符時就計算,因此,表示式並不是從右至左整體計算而是每次由中心向外計算一部分,這樣在複雜運算中就很少導致操作符錯誤。
2、堆疊自動記錄中間結果,這就是為什麼逆波蘭計算器能容易對任意複雜的表示式求值。與普通科學計算器不同,它對表示式的複雜性沒有限制。
3、逆波蘭表示式中不需要括號,使用者只需按照表示式順序求值,讓堆疊自動記錄中間結果;同樣的,也不需要指定操作符的優先順序。
4、逆波蘭計算器中,沒有「等號」鍵用於開始計算。
5、逆波蘭計算器需要「確認」鍵用於區分兩個相鄰的運算元。
6、機器狀態永遠是一個堆疊狀態,堆疊裡是需要運算的運算元,棧內不會有操作符。
7、教育意義上,逆波蘭計算器的使用者必須懂得要計算的表示式的含義。
3樓:莫道無情
轉為字尾表示式是abcde/+*+
a+b*(c+d/e) (a+(b*(c+(d/e))))按照運算子的優先順序對所有的運算單位加括號,式子變成了:(a+(b*(c+(d/e)))),然後轉換字尾表示式。
字尾:把運算子號移動到對應的括號後面,則變成了:(a(b(c(de)/)+)*)+
把括號去掉後的式子則為字尾表示式: abcde/+*+
4樓:匿名使用者
a+b*(c+d/e)
(a+(b*(c+(d/e)))) 按計算順序加上括號(a(b(c(de)/)+)*)+ 把運算子放到括號外面abcde/+*+ 去掉括號
5樓:匿名使用者
abcde/+*+
腦算,沒用程式設計實現!
字尾表示式是從左到右算。
我給你說說我的技巧吧,也許你就學會了。
1。先寫好順序 abcde
2。然後按運算順序符號 abcde/ abcde/+ abcde/+* abcde/+*+
ok解決。
心得技巧:這是按符號算,從第一個符號的左邊倆個數開始算。每個符號都是算符號左邊的兩個數!
sorry.
資料結構問題,算術表示式a+(b-c+d)*e的字尾式是
6樓:林偉華
轉換是從左到右讀bai取
1、遇du到a
2、遇到+
3、遇到(,先進行括zhi號計dao算,+號推後4、遇到b
5、遇到-,因回為括答號把a隔開,所以還沒湊齊兩個數,所以放到後面6、遇到c,湊齊兩個數可以進行計算,現在字尾表示式為abc-7、遇到+,前面的只有一個值,是bc-的結果,所以要再讀入一個值8、遇到d,湊齊了兩個數可以計算,a bc- d +9、遇到),括號優先結束
10、遇到*高於+先進行計算
11、e於()中的結果進行計算,現在字尾表示式為abc-d+e*12、最後進行+的運算
得出結果abc-d+e*+
這轉換方法也跟字尾式的計算方法有關,比如堆疊的使用,可以將abcde分別代入12345,字尾式的計算方法,abc在棧中,a在棧底,遇到-運算子,從bc從棧中出棧,計算,2-3=-1又放回棧中,遇到d壓入棧,遇到+,又取出-1+4=3,又壓入棧中,遇到e壓入棧,又遇到*,3和4又出棧3*5=15壓回棧中,遇到+,1+15,最後結果為16,這就是字尾式的計算,如果將abcde代入12345帶入中序式子a+(b-c+d)*e結果也是一樣的
不知道我能不能很好的說清楚,望有用
中綴表示式轉換成字尾表示式並求值
1 中綴表示式字尾演算法 遇到運算元,直接輸出。2 棧是空的,遇到操作符,直接推棧。3 當遇到開括號時,按下它,如下圖所示。4 當遇到右括號時,執行out操作並開始輸出out元素。直到彈出堆疊的元素是一個開括號。5 當遇到其他操作符時,彈出該操作符大於或等於堆疊頂部的所有優先順序元素,然後將該操作符...
c語言,算術表示式的值,要具體程式x a 3 int x y 2 4 設x 2 5,a 7,y 4 7 拜託了,明天就要的
include int main main double result double x,int a,double y int main z就是你要的結果內。容 double func c語言程式設計 編寫程式求下列表示式的值 x a 3 x y 2 4.設x 2.5,a 7,y 4 include...
易語言正規表示式寫法,易語言中怎麼用正規表示式
s s s s s s formatresult s s s s s s s s 子匹配du 文字zhi1 取標dao題 子匹配文字2 取期 回數子匹配文字3 取日期 子匹配文字4 開獎號 呼叫正則 答.取子匹配檔案就可以了。網頁連結 易語言中怎麼用正規表示式 正規表示式,又稱正規表示法 常規表示法...