問題詳情

22. 若一棵二元樹之前序尋訪結果為 /+-a+xy*+b*ca,中序尋訪結果為 -a+x+y/+b*c*a,則其後序尋訪結果為何?
(A) a-xy+b+ca*+*/
(B) a-xy++b+ca**/
(C) ca*b+*xy+a-+/
(D) ac*b+*yx+a-+/

參考答案

答案:B
難度:適中0.567775
統計:A(57),B(222),C(77),D(35),E(0)

用户評論

Wei Foxkyo】評論

從已知答案為B中推出來的 不知對否,有錯誤請指正前序  /+-a+xy*+b*ca  → 樹根為 / 左子樹為中序 -a+x+y 右子樹為中序 +b*c*a中序  -a+x+y/+b*c*a還原中序的括號((-a)+(x+y))   /   ((+b)*(c*a))前序→樹根移到最前,左括號換成括號內最靠近左邊的運算子,去除右括號 得 /+-a+xy*+b*ca後序→樹根移到最後,右括號換成括號內最靠近右邊的運算子,去除左括號 得 a-xy++b+ca**/ 得答案B 

洪琟棆】評論

Vivi】評論

由題目可知前序/+-a+xy*+b*ca  代表「/」是樹根中序-a+x+y/+b*c*a 已知「/」是樹根表示「-a+x+y」屬於左子樹「+b*c*a」屬於右子樹題目問題問後序表示順序為 左子樹右子數根各選項推導(a)a-xy+b+ca*+*/如果這為後序則「a-xy+b」應為左子樹但與我們中序所推導的「-a+x+y」屬於左子樹的內容不一樣因此此選項錯誤(b)a-xy++b+ca**/如果這為後序則「a-xy++」應為左子樹「b+ca**」應為右子樹與上述中序推導的均符合(c)ca*b+*xy+a-+/如果這為後序則「ca*b+*」應為左子樹但一樣與所推導內容不一樣錯誤(d)ac*b+*yx+a-+/如果這為後序則「ac*b+*」應為左子樹但與所推導內容不一樣錯誤