2012-10-20 70 views
0

在我的考試中,我得到了這個表達式,並且未能構造出二叉樹。解決方案是什麼?如何從代數表達式構造二叉樹

(5a-3b)^2*(3a+5b)^3 

我畫的樹從上述表達類似

  * 
     /\ 
     / \ 
     ^ \ 
     /\  \ 
    / \  \ 
     -  2 ^
    /\  /\ 
/ \  + 3 
    *  * /\ 
/\ /\ / \ 
5 a 3 b *  * 
      /\ /\ 
      3 a 5 b 

我從這個答案得到0!我無法理解原因!

任何人都可以幫助我嗎?

+0

編輯您的帖子,並告訴我們你認爲二叉樹應該是什麼。 –

+0

我畫了先生..你能找出我的問題嗎? – Iqbal

+0

我在你的樹中沒有看到任何錯誤。問你的老師。 –

回答

0

構建一個二叉樹並不意味着你只畫出了你在這裏顯示的圖形表示。 我認爲這實際上意味着在代碼中實現或可能在僞代碼。 所以再考慮使用stack並使用相同的表達式 將infix表示法轉換爲postfix,並且您可以使用堆棧屬性輕鬆解決該問題。

0

我目前正在參加離散數學課程,我們正在討論樹木問題。你必須記住把每個級別放在它自己的()中。所以我相信你創建的樹會看起來像這樣一個表達式:((5 * a) - (3 * b))^ 2 *((3 * a)+(5 * b))^ 3。這是樹的Inorder遍歷。對於你的答案,你需要有更多這樣的東西:

    * 
       / \ 
      / \ 
      /  \ 
      ^  \ 
     / \  \ 
     / \  \ 
     -  2  ^
    / \   /\ 
    / \   / 3 
    5a  3b  + 
        / \ 
        / \ 
        3a  5b