考點分析 / 交大 / 107

107 交大資工所軟體考點分析

全卷 10 題手寫,兩題(第 5、6 題)合計 20 分是純程式碼追蹤,另有 Johnson 演算法與 Hamiltonian path 歸約各佔 15 分。

題型與配分

科目「資料結構與演算法(1101)」,系所班別資訊聯招,考試日期 107 年 2 月 2 日第 1 節,全卷 5 頁、10 題、100 分,不可使用計算機。全部手寫。

題號主題配分
1MST 總權重5
2中序與後序走訪10
3紅黑樹插入(含所有 Fixup 步驟)10
4二分搜尋的遞迴式推導5
5二元樹程式追蹤10
6Linked list 程式追蹤10
7Johnson 演算法15
8Edmonds-Karp 與最小割10
9最大子陣列填空10
10Hamiltonian path 歸約15

逐題考點

  • 第 1 題(5%)|給一張帶權圖,求 MST 的總邊權
  • 第 2 題(10%)|給一棵樹,寫出 in-order 與 post-order 走訪序列
  • 第 3 題(10%)|給一棵紅黑樹(黑用方形、紅用圓形),插入 {9} 後畫出結果。題目特別要求「必須畫出 Insertion-Fixup 的所有步驟」,不能只給最終結果
  • 第 4 題(5%)|給一支遞迴的二分搜尋函式 foo,用遞迴關係式推導時間複雜度,要一步一步寫出推導過程
  • 第 5 題(10%)|追蹤兩支函式:foo1 遞迴左右子樹互換(鏡射整棵樹),foo2 做後序走訪並在 flag 為偶數時累加。要輸出最終的 sum。難點在 flag++ 寫在 if 外面且遞迴呼叫會改變它
  • 第 6 題(10%)|追蹤三支函式:foo1 做一趟氣泡交換、foo2 反轉整條 linked list、bar 累加奇數索引位置的值。注意 flag&1==1 因為 C++ 運算子優先序的關係實際上是 flag & (1==1) 也就是 flag & 1
  • 第 7 題(15%)|給出 Johnson 演算法的完整 pseudo-code(加超級源點 s、跑 Bellman-Ford 求 h(v)、重新配權 w'(u,v) = w(u,v)+h(u)−h(v)、再對每個點跑 Dijkstra):
  • (a) 5%|這個演算法的功能是什麼、用 Fibonacci heap 的複雜度為何(答案:全點對最短路徑、O(V2log V + VE))
  • (b) 10%|為什麼第 3 步可以用 Dijkstra? 要證明重新配權後所有邊權非負,且最短路徑不變
  • 第 8 題(10%)|給一張流網路(節點 0 為源點、節點 5 為匯點):(a) 5% 用 Edmonds-Karp 求最大流,要畫出前五次迭代的殘餘網路與對應的流 (b) 5% 找出一個最小割
  • 第 9 題(10%)|最大子陣列和的 O(n) 解法填空。程式先把 A 改成前綴和,再用一個變數 k 追蹤目前見過的最小前綴和,要填 (a)(b) 兩格
  • 第 10 題(15%)|已知有 O(nc) 時間的 HamP(G) 可判斷圖是否有 Hamiltonian path,要設計 O(nc+2) 時間的 HamEx(G, x)(判斷 G 是否存在一條不以 x 為端點的 Hamiltonian path),並證明正確性。題目明訂「若演算法漸進較慢,不給部分分數」

這份考卷的難點

  1. 第 5、6 題合計 20 分全是程式碼追蹤,而且都埋了陷阱:第 5 題的 flag++ 位置、第 6 題的 flag&1==1 運算子優先序。這兩題考的是 C/C++ 語意而非演算法。
  2. 第 7(b) 是全卷最需要真正理解的地方。 要能證明 w'(u,v) = w(u,v)+h(u)−h(v) ≥ 0(三角不等式)以及路徑總權重的伸縮和只差 h(u)−h(v)。
  3. 第 10 題的歸約要控制在指定的複雜度內,且沒有部分分數。標準做法是加一個新節點連到所有非 x 的節點再呼叫 HamP。
  4. 第 3 題要畫出所有 Fixup 步驟,只寫最終樹會失分。

準備建議

  • 程式碼追蹤是交大的招牌(106 第 3 題、107 第 5、6 題、108 第 1、2、4、9 題都是),要練到能穩定模擬指標操作與運算子優先序
  • Johnson 演算法建議完整讀懂(不只是記得名字),交大 107 直接考它的正確性證明
  • 紅黑樹插入的 Fixup 三種情況(叔叔紅/叔叔黑且為三角形/叔叔黑且為直線)要能逐步畫出來
  • Kadane's algorithm(最大子陣列和)的兩種寫法(DP 版與前綴和版)都要會,107 考的是前綴和版

想看完整逐題詳解?

國立陽明交通大學 106–115 全年度完整詳解共 463 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科