首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 資料結構 - 圖的鄰接表結構與遍歷基礎 (3)

     編輯:關於C語言

AdjacencyList<T> 類別設計

使用泛型實作鄰接表,內含兩個巢狀類別:

  • Vertex<TValue>:表頭節點,含 data、firstEdge、visited 標記
  • Node:表節點,含 adjvex (指向表頭節點)、next 指標

多個 Node 串成單向鏈表,儲存該頂點所有邊資訊。使用 List<Vertex<T>> 取代陣列,動態擴展。

關鍵方法

  • AddDirectedEdge():加入有向邊,無向圖需呼叫兩次。新鄰接點加至鏈表尾部,便於檢查重複邊。
  • ToString():格式化輸出「頂點:鄰接點列表」

測試範例

var a = new AdjacencyList<char>();
a.AddVertex('A'); a.AddVertex('B'); a.AddVertex('C'); a.AddVertex('D');
a.AddEdge('A','B'); a.AddEdge('A','C'); a.AddEdge('A','D'); a.AddEdge('B','D');
Console.WriteLine(a.ToString());
// 輸出:
// A:BCD
// B:AD
// C:A
// D:AB

8.3 圖的遍歷基礎

  • 需 visited 標記防止重複訪問
  • 兩大演算法:DFS (深度優先)、BFS (廣度優先)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved