1(a)Doubly Linked List 選型理由
考點:Singly/Doubly Linked List:基本操作與優缺點比較
Doubly Linked List。節點有 next 與 prev,Forward 與 Back 皆 ;Singly Linked List 只能單向,Back 須從 head 重新走訪。
國立中央大學資訊管理學系
參考答案 PDF各校參考答案的 PDF,訂閱考試資源分享信後會寄到您的信箱。訂閱領取 PDF
參考答案由作者與 AI 討論後逐題確認,不是各校公布的標準答案;若與各校公布不同,以各校為準。
最後更新:2026 年 11 月 3 日。發現錯誤歡迎來信。
這份考卷每一題的解析與手寫題的答題範例,收在《資管所考古題 111-115 計概資結全解》,可以免費試閱。
考點:Singly/Doubly Linked List:基本操作與優缺點比較
Doubly Linked List。節點有 next 與 prev,Forward 與 Back 皆 ;Singly Linked List 只能單向,Back 須從 head 重新走訪。
考點:Singly/Doubly Linked List:基本操作與優缺點比較
struct Node {
int data;
Node *prev, *next;
};
void insertAfter(Node* node, int data) {
Node* p = new Node;
p->data = data;
p->prev = node;
p->next = node->next;
if (node->next) node->next->prev = p; // 後方節點回指
node->next = p;
}
考點:Singly/Doubly Linked List:基本操作與優缺點比較
Hash Table 以 URL 為 key、value 為指向 DLL 對應節點的指標,查詢平均 。DLL 依瀏覽時間先後串接節點(新頁面接在尾端),串列順序即瀏覽順序,Back/Forward 沿 prev/next 移動。
考點:三種走訪順序的定義與追蹤方法
Preorder:50, 30, 20, 10, 40, 70, 60, 65, 85, 80。
Postorder:10, 20, 40, 30, 65, 60, 80, 85, 70, 50。
考點:BST 基本性質:中序對應關係、比較次數計算與 Internal/External Node 定義
70 有兩個子節點,以右子樹最左節點(inorder successor)80 取代 70,原本的 80 是葉節點,直接移除。
(如簡答圖)

考點:Heap 的建立與 heapify-up/heapify-down
最終陣列:[5, 20, 8, 25, 40, 15, 12, 30, 35]。
考點:Two-Heap 設計:Max-Heap+Min-Heap 求 Streaming Median
Max-Heap L 存較小的一半,Min-Heap R 存較大的一半,維持 。
Insert(x):(或 L 為空)放入 L,否則放入 R;兩堆大小差超過 1 時,把較大堆的 root 移到另一堆。
QueryMedian():大小相等時取 ,否則取較大堆的 root。
Insert ,QueryMedian 。
考點:Queue 的實作方式比較(Array/Linked List,Linear/Circular)
Circular Queue。front、rear 到達 N-1 後以 mod 繞回 0:
array[rear] = data; rear = (rear+1) % N;data = array[front]; front = (front+1) % N;重複利用刪除釋出的空位,不需搬移,插入 ;以犧牲一格(滿:(rear+1) % N == front)或維護 count 區分滿與空。
考點:Queue 的實作方式比較(Array/Linked List,Linear/Circular)
採用額外 count 變數的作法,不犧牲陣列格數:
int front = 0, rear = 0, count = 0;
bool Insert(int data) {
if (count == N) return false; // Queue Full
array[rear] = data;
rear = (rear + 1) % N;
count++;
return true;
}
bool Delete(int &data) {
if (count == 0) return false; // Queue Empty
data = array[front];
front = (front + 1) % N;
count--;
return true;
}
考點:遞迴(Recursion)基本概念:分而治之與 Base Case
bool isPalindrome(char* S, int left, int right) {
if (left >= right) return true; // base case
if (S[left] != S[right]) return false; // 左右不匹配
return isPalindrome(S, left + 1, right - 1); // 往內遞迴
}
考點:遞迴(Recursion)基本概念:分而治之與 Base Case
遞迴版:時間 ,空間 (呼叫堆疊深度約 )。迭代版:時間 ,空間 。兩者時間相同,迭代版較省空間。
考點:Prim's Algorithm 正確性證明(cut property)與更新條件
考點:Prim's Algorithm 正確性證明(cut property)與更新條件
時間 ( 只有 條邊,找路徑與掃最大邊各 );空間 。
考點:Red-Black Tree Insertion:CLRS 三種 Case 與旋轉、重新著色規則
(如簡答圖)

考點:Red-Black Tree 未 Augmented 時不具備 O(log n) 排名/中位數查詢能力
| 節點 | 5 | 10 | 20 | 15 | 35 | 50 | 40 | 30 |
|---|---|---|---|---|---|---|---|---|
| size | 1 | 2 | 1 | 4 | 1 | 1 | 3 | 8 |
考點:Red-Black Tree 未 Augmented 時不具備 O(log n) 排名/中位數查詢能力
30。root 30 的左子樹 size 為 4,名次 ,root 即為第 5 小。
考點:巢狀作用域 Symbol Table:Scope Chain 與變數遮蔽(Shadowing)
| Scope | (name, level, value) |
|---|---|
| Level 0 | |
| Level 1 | |
| Level 2 |
考點:巢狀作用域 Symbol Table:Scope Chain 與變數遮蔽(Shadowing)
Level 2 的 x,scope_level = 2,value = 5。
考點:巢狀作用域 Symbol Table:Scope Chain 與變數遮蔽(Shadowing)
4 次(x = y + 1 與 y = x + 2 各 2 次;宣告不計入)。
考點:AVL Tree 插入與四種旋轉(LL/RR/LR/RL)調整規則、Hash Function 與雜湊表(Hash Table)基本概念
(a) (a,1), (ee,2), (cc,2), (ccd,3), (cca,3), (abc,3), (dddd,4), (fffff,5)。
(b)
[0] → dddd
[1] → a → fffff
[2] → ee → cc
[3] → ccd → cca → abc
(c) (如簡答圖)插入 (2,2) 時於 (0,1) 做 RR 旋轉(左旋),為唯一一次旋轉。
