有向無環圖表示算術表達式

題目描述:
用有向無環圖描述表達式(A+B)*((A+B)/A),至少需要頂點的數目爲幾個?
分析:

  1. 先畫出算術表達式 (A+B)*((A+B)/A)的二叉樹表示
    在這裏插入圖片描述
  2. (A+B)*((A+B)/A) 有重複的子表達式 (A+B),二叉樹中可實現對子表達式的共享
    在這裏插入圖片描述
    所以:
    在這裏插入圖片描述
    相同的葉子節點可以共用:
    在這裏插入圖片描述
    所以至少需要五個頂點: *+/AB 各一個。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章