我有如下圖所示如何找到一個圖的鄰居effiiciently
算法開始於綠色節點,並遍歷該圖是創建圖形的程序。假設一個節點(帶有4個引用左,右,上,下的鏈接列表類型節點)已被添加到圖像中紅點所示的圖形中。爲了將新創建的節點與其鄰居相集成,我需要找到這四個對象並將它們鏈接起來,以保持圖形連通性。
以下是我需要澄清
- 假設所有黃色節點是空的,我不養另一個數據結構來映射節點是什麼,找到鄰居的存在,最有效的方法新創建的節點。我知道像DFS,BFS等最基本的圖形搜索算法和最短路徑算法,但我不認爲其中任何一個都足夠有效,因爲該圖可以有大約10000個節點,並執行圖搜索算法(從綠色節點開始)以找到添加新節點時的鄰居似乎在計算上花費很大。
- 如果圖搜索是不可避免的,那麼最好的替代結構是什麼。我想到了一個大型的多維數組。但是,這具有內存浪費,並且還存在沒有負指數的問題。由於圖像中的圖形可以在任何方向上增長。我對此的解決方案是編寫一個由基於數組的數據結構組成的獨立類來描繪負向索引。但是,在採取這種選擇之前,我想知道如果我能夠解決問題而不解決新的結構並且節省大量的返工。
感謝您的任何反饋和閱讀此問題。
我喜歡你的答案,但不幸的是,我只能選擇一個作爲最好的.... – Synex