109 高普考普通考試 統計 資料處理概要 考古題詳解
第 一 題25 分
CSMA/CD(Carrier Sense Multiple Access/Collision Detection)與 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)是兩項現今普及的網路通訊協定,請比較兩者之間的差異以及各自的運作過程。
登入後即可作答並保存紀錄。
核心觀念
本題考查共享媒介網路的媒介存取控制。CSMA/CD 與 CSMA/CA 都先「載波感知」(Carrier Sense),確認媒介是否忙碌,再由多個節點共同使用傳輸媒介;兩者的關鍵差異在於碰撞處理方式:
- CSMA/CD(碰撞偵測):傳送期間持續監聽媒介,偵測到碰撞後停止傳送,通知其他節點並延後重傳。
- CSMA/CA(碰撞避免):傳送前先等待並隨機退避,盡量降低碰撞機率;傳送後再透過確認訊框等方式確認結果。
CSMA/CD 傳統上用於共享式、半雙工乙太網路;CSMA/CA 主要用於無線區域網路,例如 IEEE 802.11 Wi-Fi。
解題方法
回答時可從「媒介環境、碰撞處理、運作流程」三個角度比較。尤其要把 CD 的「先傳送、邊傳送邊偵測」與 CA 的「傳送前先等待及退避」說清楚,並交代碰撞後如何處理。
CSMA/CD 運作過程
- 監聽媒介:節點先檢查媒介是否空閒。若媒介忙碌,便持續等待。
- 媒介空閒後傳送:節點開始傳送訊框,並在傳送期間持續監聽媒介。
- 偵測碰撞:若同時有其他節點傳送,節點會偵測到碰撞。
- 中止並通知:節點立即停止原訊框傳送,送出干擾訊號(jam signal),使所有節點都能察覺碰撞。
- 隨機退避再傳送:節點依二進位指數退避機制等待隨機時間,再回到媒介監聽程序。退避範圍會隨連續碰撞次數增加而擴大,以降低再次碰撞的機率。
CSMA/CA 運作過程
- 監聽媒介:節點先確認媒介是否忙碌。若忙碌,便等待媒介空閒。
- 等待間隔並退避:媒介空閒後,節點通常還須等待指定的媒介空閒間隔(如 DIFS),再從退避計數範圍中隨機選擇時槽數。媒介持續空閒時,計數器逐步遞減;媒介轉忙時,計數器暫停,待媒介再次空閒後繼續倒數。
- 傳送訊框:退避計數器歸零後,節點才開始傳送資料。
- 等待確認:接收端成功收到資料後,回覆確認訊框(ACK)。
第 二 題25 分
合併是指將兩個關聯表依合併條件合併成一個新的關聯表。當進行合併時,不管紀錄是否符合條件,都會列出其中一個資料表的所有紀錄,稱為「外部合併」。
下表分別為學生資料表以及課程資料表。若對兩個資料表進行全外部合併,其結果為何?(學號為主鍵)
學生資料表:
| 學號 | 姓名 | 課號 |
|---|---|---|
| S0001 | 張三 | C001 |
| S0002 | 李四 | C002 |
| S0003 | 王五 | C005 |
| S0004 | 林六 | NULL |
課程資料表:
| 課號 | 課名 | 學分數 |
|---|---|---|
| C001 | 資料結構 | 3 |
| C002 | 資訊管理 | 3 |
| C003 | 系統分析 | 3 |
| C004 | 程式設計 | 4 |
| C005 | 資料庫系統 | 4 |
登入後即可作答並保存紀錄。
核心觀念
本題考查關聯式資料表的全外部合併(Full Outer Join)。以「課號」作為兩表的合併欄位:
- 能配對的課號:合併學生與課程的資料。
- 只出現在學生表的紀錄:保留學生資料,課程欄位補為
NULL。 - 只出現在課程表的紀錄:保留課程資料,學生欄位補為
NULL。
NULL 不代表一個可配對的課號,因此學生表中課號為 NULL 的紀錄不會與任何課程紀錄配對。
解題方法
逐一比對兩表中的課號:
C001同時出現在兩表,合併為張三修習資料結構。C002同時出現在兩表,合併為李四修習資訊管理。C005同時出現在兩表,合併為王五修習資料庫系統。- 學生林六的課號是
NULL,沒有可配對課程,保留學生紀錄,課程欄位補NULL。 - 課程
C003、C004沒有對應學生,保留課程紀錄,學生欄位補NULL。
因此,全外部合併結果如下:
第 三 題25 分
請利用 SQL 語法列出「產品資料表」之全部產品編號、銷售業績、產品售價、產品名稱,並將銷售業績由低到高排序,但銷售業績為零的除外。
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 查詢語法,包括 SELECT 指定欄位、FROM 指定資料表、WHERE 篩選資料,以及 ORDER BY 排序。
解題方法
從「產品資料表」取出產品編號、銷售業績、產品售價及產品名稱。題目要求排除銷售業績為零的資料,因此以 WHERE 銷售業績 <> 0 篩選;再以 ORDER BY 銷售業績 ASC 依銷售業績由低到高排序。ASC 為升冪排序,亦可省略,因為它是預設排序方向。
第 四 題25 分
請問下列二元樹的中序、前序以及後序表示法為何?並繪出對應於該二元樹之引線二元樹。
二元樹結構如下:
- 根節點:
- 節點 的左子節點為 ,右子節點為 。
- 節點 的左子節點為 ,右子節點為 。
- 節點 的右子節點為 。
- 節點 的左子節點為 。
登入後即可作答並保存紀錄。
核心觀念
本題考二元樹的三種走訪順序,以及中序引線二元樹的建立。
- 中序:左子樹 → 根節點 → 右子樹。
- 前序:根節點 → 左子樹 → 右子樹。
- 後序:左子樹 → 右子樹 → 根節點。
- 中序引線二元樹:將原本為空的左、右子指標改作引線,分別指向該節點的中序前驅與中序後繼。以下以「子指標」表示原本的樹枝,以「引線」表示前驅或後繼連結;未指定表頭節點,因此首尾引線以
NULL表示。
解題方法
依題目圖形,原二元樹的子節點關係如下:
1
/ \
2 3
/ \ \
4 5 6
/
7
中序表示法
按照「左、根、右」走訪:
- 節點 1 的左子樹為:
- 接著訪問根節點 1
- 節點 1 的右子樹為:
因此中序為:
前序表示法
按照「根、左、右」走訪:
- 先訪問根節點 1
- 再走訪左子樹:
- 最後走訪右子樹:
因此前序為:
後序表示法
按照「左、右、根」走訪:
- 左子樹依後序為:
- 右子樹依後序為:
- 最後訪問根節點 1
因此後序為:
中序引線二元樹
先依中序序列 找出各節點的中序前驅與後繼,再將原本空缺的子指標改為引線: