資料結構,中綴算術表示式,求字尾算術表示式,急急急急急急急急急急,跪求高手指點,萬分感激

2021-04-15 07:31:32 字數 3238 閱讀 7033

1樓:匿名使用者

網上說的bai都比較麻煩,其du實很簡單:zhi

首先你要知道一點就是中dao綴轉為專字尾時運算元的順序是不屬會變的。另外「(」也不會出現在字尾表示式中。

然後,你可以這樣看,在這個表示式中,按照運演算法則,應該先算(10-8),所以就是「10 8 -」在一起,然後再把(10-8)的結果乘以2,就變成了 10 8 - 2 *(因為*2是在10-8的後面),然後算40+(10-8)*2,把剛才的式子加上40,40 10 8 - 2 * +,然後計算「-16/8「就得到了 40 10 8 - 2 * + 16 8 / -

2樓:蝦米

這個你必bai

須先學會前序遍歷

du,中序遍歷,zhi和後續遍歷,如果實在dao不會可以這樣!

40(+((回10-8))答*2))(-(16/8)) 你先按照優先順序,把括號加上,然後每個運算子放在相應的括號的外面就是了,慢慢來,不要看錯了就是了

算術表示式a+b*(c+d/e )轉為字尾表示式是?具體分析下!謝謝!! 20

3樓:59分粑粑

轉為字尾表示式是「abcde/+*+ 」。

a+b*(c+d/e)   (a+(b*(c+(d/e))))通過根據運算子的優先順序將所有算術單元括起來,該表示式變為:(a+(b*(c+(d/e)))),然後轉換字尾表示式。

字尾:將操作符號移到相應的括號之後,然後變為:(a(b(c(de)/)+)*)+

除去括號後的表示式是字尾表示式:abcde/+*+

4樓:蘑菇西餐

轉化後的字尾表示式為: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、教育意義上,逆波蘭計算器的使用者必須懂得要計算的表示式的含義。

5樓:莫道無情

轉為字尾表示式是abcde/+*+

a+b*(c+d/e)   (a+(b*(c+(d/e))))按照運算子的優先順序對所有的運算單位加括號,式子變成了:(a+(b*(c+(d/e)))),然後轉換字尾表示式。

字尾:把運算子號移動到對應的括號後面,則變成了:(a(b(c(de)/)+)*)+

把括號去掉後的式子則為字尾表示式: abcde/+*+

6樓:匿名使用者

a+b*(c+d/e)

(a+(b*(c+(d/e)))) 按計算順序加上括號(a(b(c(de)/)+)*)+ 把運算子放到括號外面abcde/+*+ 去掉括號

7樓:匿名使用者

abcde/+*+

腦算,沒用程式設計實現!

字尾表示式是從左到右算。

我給你說說我的技巧吧,也許你就學會了。

1。先寫好順序 abcde

2。然後按運算順序符號 abcde/ abcde/+ abcde/+* abcde/+*+

ok解決。

心得技巧:這是按符號算,從第一個符號的左邊倆個數開始算。每個符號都是算符號左邊的兩個數!

sorry.

資料結構問題,​算術表示式a+(b-c+d)*e的字尾式是

8樓:林偉華

轉換是從左到右讀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結果也是一樣的

不知道我能不能很好的說清楚,望有用

求正規表示式

釋內容!如果我理解錯誤!發資訊過來!正規表示式如下 href s s 你要的資料全都在title組和url組裡面 如果是c 語言 那麼正規表示式的運用為 string regex title s s href s s 隨你補充問題從而進一步回答 href s s s s 註釋文字 s s c 應用 ...

sql資料庫關係代數表示式舉例問題

括號裡面的s sc表示的是自然連線,當查詢的選擇條件涉及的屬性和查詢結果要求的屬性不在同一張表裡的時候,這時就需要使用連線查詢將條件和結果關聯起來。關係代數與sql語句的關係舉例說明 sql語句用法及關係代數運算是資料庫原理課中的重點和難點內容,關係代數是一種抽象數學語言,是關係資料操縱語言的一種傳...

c表示式184sqrt405值的資料型別是怎麼做

1.這個牽涉到強制轉化問題,有個優先順序,低精度的和高精度的資料運算時,把低精度的轉化為高精度的資料,結果是高精度的資料2.由於sqrt返回值是double型別,在這個表示式中double是最高精度 3.所以結果應該是double型別 4 2.0 5 8.0 5 1.600000。應該是float型...