這是來自我正在進行的練習測試...不知道如何回答這個問題:什麼類型的應用程序是每個數據結構用於存儲圖形的邊緣最適合?
考慮在圖中存儲邊(鄰接矩陣,鄰接列表,邊列表)的三種數據結構。每種數據結構最適合哪種類型的應用程序?
糾正我,如果我錯了,但據我所知,鄰接矩陣是表示圖的效率最低的方法,因爲二維數組中的元素表示不存在的邊,而其他兩個數據結構只包含表示存在邊緣的元素,因此任何操作的遍歷速度都較慢。如果這是真的,那麼爲什麼有人想使用它?
對於鄰接列表,它比鄰接矩陣更有效,但仍包含冗餘信息 - >如果邊連接頂點i和j,則包含頂點i的頂點節點出現在頂點的鄰接列表中j並且同時包含頂點j的頂點節點出現在頂點i的鄰接列表中。
而...邊緣列表是最有效的。
因此,重申我的問題....如果一個邊界列表是最有效的表示,爲什麼你會想要使用其他兩個之一呢?
任何幫助,將不勝感激,謝謝。
考慮到內存,鄰接列表可以非常有效,所以它也有用。 –
鄰接矩陣對於小圖或密集圖非常有效,因爲您可以將邊打包爲位。 –
Google有[答案](http://www.geeksforgeeks.org/graph-and-its-representations/) – nishantjr