2016年8月27日 星期六

商競104F-P41二搜+後巡

這是依商業技藝競賽程式104年正式題第4題子題1稍微修改
資料檔第1列 一個數字 n ,代表 n 組資料,接著每組資料二列
每組的第1列一個數字x,每組第2列 x 個數字以逗號隔開
將讀入的 x 數字建成二元搜尋樹,然後依二元樹的後序拜訪 印出




依後序巡訪列印的順序,第1棵樹的輸出解說如下:
(1)印出7之前,(2)先印左樹4 (有3節點,印出序1~3),(3)再印右樹12(有4節點,印出序4~7)
(2) 印左樹4
     (2-1)在印4之前,(2-2)先印4的左樹1 (印出序1),  (2-3)然後再印4的右樹5(印出序2)
        印出左右樹後才印 (印出序3)
(3) 印右樹12
     (3-1)在印12之前,(3-2)先印12的左樹8 (2節點,印出序4~5) ,  (3-3)然後再印12的右樹15(印出序6)
       印出左右樹後才印 12 (印出序7)
     (3-2) 印右樹12的左樹8
          (3-2-1)在印8之前,(3-2-2)先印8的左樹(無左樹)  ,  (3-2-3)然後再印8的右樹9(印出序4)
       印出左右樹後才印 (印出序5)
根節點7的左右樹皆印出後才印  7 (印出序8) 
所以第一組資料印出的順序為:1,5,4,9,8,15,12,7

輸入:{第1列4,代表共有4組資料}
4
8
7,4,1,5,12,8,9,15
10
9,4,1,5,12,11,10,15,2,3
9
4,1,5,12,11,10,15,2,3
4
1,2,3,4

輸出:
1,5,4,9,8,15,12,7
3,2,1,5,4,10,11,15,12,9
3,2,1,10,11,15,12,5,4
4,3,2,1


0 意見:

張貼留言