C# 資料結構 - 紅黑樹插入操作與旋轉類型 (上)(2)
紅黑樹旋轉操作 同 AVL:LL、RR、LR、RL 四種。差別在旋轉後調整節點顏色而非平衡因子。動畫參考 AVL 文章。 插入操作核心概念 新節點初始顏色為紅
C# 資料結構 - 紅黑樹插入黑叔父旋轉情形 (上)(3)
2.2 黑叔父 - 四種旋轉情形 叔父為黑需旋轉,旋轉完成後新根皆為黑,無需向上回溯,插入結束。 注意:「叔」、「1」、「2」、「3」節點可能為黑哨兵節
C# 資料結構 - 紅黑樹刪除操作分類與基本情況 (上)(4)
紅黑樹節點刪除 屬二元搜尋樹,刪除邏輯相同:有兩個子節點時,真正刪除點為中序前驅。真正刪除點最多一個子節點。 兩個重要結論 真正刪除點必為「單一紅色子節點」
C# 資料結構 - 紅黑樹刪除雙黑情況處理 (上)(5)
3. 雙黑 (Double Black) 處理 舊節點與新節點皆為黑 (含新節點為空) 時,需依兄弟節點顏色決定操作。 3.1 紅兄 執行 RR/LL 旋轉,
C# 資料結構 - 紅黑樹刪除操作完整解析 (上)(6)
3.2.3 黑兄紅侄 - 四種旋轉情形 若兩個侄子皆為紅:情形 1/2 優先 LL 旋轉,情形 3/4 優先 RR 旋轉。 紅黑樹程式碼實作心得 Sor
C# 資料結構 - 圖的儲存結構:鄰接矩陣與鄰接表 (1)
8.2 圖的儲存結構 除儲存頂點資訊,還需儲存頂點間關係 (邊)。常用四種:鄰接矩陣、鄰接表、十字鏈表、鄰接多重表。 8.2.1 鄰接矩陣 n 階方陣 A[i,
C# 資料結構 - 圖的廣度優先搜尋 (BFS) 實作 (5)
8.3.2 廣度優先搜尋遍歷 分層遍歷:從起始頂點 Vi 訪問其所有未訪問鄰接點,再從這些鄰接點繼續,直到所有鄰接點被訪問。需輔助佇列。 圖 8.15 無向連通
C# 資料結構 - 非連通圖遍歷實作 (6)
8.3.3 非連通圖遍歷 前文 DFS/BFS 僅適用連通圖。非連通圖需從每個連通分量選擇起始點分別遍歷,才能訪問所有頂點。 修改後的遍歷方法 public
C# 資料結構 - 二元樹儲存結構完整說明 (1)
二元樹儲存結構 1. 循序儲存結構 將滿二元樹由上至下、由左至右編號,存入陣列。索引 i 的性質: i=0:根節點 0:雙親索引 (i-1)/2 (整數除法)
C# 資料結構 - 二元樹遍歷基本概念與演算法 (2)
6.3 二元樹遍歷 遍歷定義:按特定順序訪問每個節點一次。本質是將非線性結構線性化,為各種樹運算基礎。 6.3.1 深度優先遍歷 二元樹遞迴定義:節點 D、左子
C# 資料結構 - 二元樹三種深度優先遍歷實作 (4)
BinaryTree 類別採二元鏈表儲存,僅保存根節點指標 Head。建構函式接收字串 (如 ABCDE#F) 依滿二元樹編號規則建構樹結構,# 代表空節點。
C# 資料結構 - 二元樹廣度優先遍歷 (Level Order) 實作 (5)
6.3.2 二元樹寬度優先遍歷 (BFS/Level Order) 逐層從左至右訪問節點,不使用遞迴,改用佇列 (Queue) 輔助。 演算法步驟 根節點入佇
C# 資料結構 - 圖的深度優先搜尋 (DFS) 實作 (4)
8.3.1 深度優先搜尋遍歷 圖的 DFS 類似二元樹,從起始頂點出發,遞迴訪問未訪問過的鄰接點,直到所有頂點被訪問。 範例圖遍歷過程 以 V1 為起點,訪問