此部落格適合那些想要了解概念要點而不是拐彎抹角的開發人員。我們將在這篇文章中了解圖資料結構。讓我們開始吧。
圖是非線性資料結構,由邊和節點兩個部分組成。
節點是:-
邊緣是:-
有2種方法:
鄰接矩陣是表示圖形資料結構的二維矩陣。行和列代表節點,矩陣中的值代表邊。
在上圖中,4 個節點透過邊連接。節點A與所有節點相連,因此在A(行或列)與其他節點的行或列相交的單元格中,該值被加為1。節點 B 僅連接到節點 A,導致節點 B 與節點 A 相交的單元格中值為 1,其他單元格值為 0。
為相鄰矩陣新增或刪除邊的時間複雜度為 O(1)。它可以在以下情況下使用:-
相鄰清單借助多個鍊錶或陣列來儲存圖形。行代表節點(檢查下圖),行中的值代表鄰居。
上圖中,有 5 個節點。節點 A 連接到節點 B 和節點 D,這就是為什麼第一個陣列具有這些值的原因。類似地,節點 B 連接到節點 A、節點 C、節點 D 和節點 E,因此第二個陣列在第二個陣列中具有這些節點。
檢索或刪除邊的時間複雜度為 O(n),增加邊的時間複雜度為 O(1)。相鄰列表可以在以下情況下使用: -
圖資料結構的一個流行範例是:在足球場上,每個球員都可以被視為一個節點,他們的互動代表邊。
圖的使用場景與前面的範例類似,例如:-
以上是在這裡獲取圖形資料結構的要點...的詳細內容。更多資訊請關注PHP中文網其他相關文章!