資料結構演算法中常見的圖形結構及其摘要說明:
基本圖形結構:
無向圖 (Undirected Graph): 由頂點 (Vertices 或 Nodes) 和邊 (Edges) 組成,邊連接兩個頂點,且邊沒有方向性。表示頂點之間的相互關係。
有向圖 (Directed Graph): 類似於無向圖,但邊是有方向的,表示從一個頂點到另一個頂點的單向關係。有向邊通常稱為弧 (Arcs)。
根據邊的特性分類:
加權圖 (Weighted Graph): 圖中的每條邊都帶有一個權重 (Weight),通常表示成本、距離、時間等數值。
未加權圖 (Unweighted Graph): 圖中的邊沒有權重。
根據圖的特性分類:
連通圖 (Connected Graph): 在無向圖中,任意兩個頂點之間都存在路徑。
強連通圖 (Strongly Connected Graph): 在有向圖中,任意兩個頂點之間都存在雙向路徑。
弱連通圖 (Weakly Connected Graph): 在有向圖中,如果忽略邊的方向,則圖是連通的。
完全圖 (Complete Graph): 在無向圖中,每一對不同的頂點之間都恰好存在一條邊。
稀疏圖 (Sparse Graph) 和稠密圖 (Dense Graph): 相對於總可能的邊數,邊的數量較少的圖稱為稀疏圖,邊的數量較多的圖稱為稠密圖。這個概念在選擇演算法時很重要,因為某些演算法在稀疏圖上更有效率,而另一些則在稠密圖上更有效率。
樹 (Tree): 嚴格來說,樹是一種特殊的無環連通圖。
常見的圖形表示方法:
鄰接矩陣 (Adjacency Matrix): 使用一個二維陣列來表示圖中頂點之間的連接關係。如果頂點 i 和頂點 j 之間存在邊,則矩陣中對應的元素為 1(或權重),否則為 0。適用於稠密圖。
鄰接串列 (Adjacency List): 為每個頂點維護一個串列,儲存與該頂點相鄰的所有頂點。適用於稀疏圖,可以節省空間。
圖形結構廣泛應用於各種領域,例如社交網路分析、交通網路規劃、電腦網路、地圖導航、生物資訊學等等。針對不同的問題和圖的特性,需要選擇合適的圖形表示方法和演算法來進行分析和處理。