我需要在一個鄰接矩陣上存儲一個帶有多個節點(大小未知的可能很大)的非有向圖。二維數組列表是一種有效的方法來存儲這個?如果不是,那麼存儲這些數據的更好方法是什麼?任何意見表示感謝,謝謝!在不知道其大小的情況下,存儲鄰接矩陣的最有效方法是什麼?
-1
A
回答
2
我肯定會去一個2d的ArrayList。您可以在O(n)時間(n是行數)中添加行/列,如果在末尾插入(這是有意義的)。訪問列表是O(1),刪除任意行將是O(n^2)。
另一種選擇是使用雙向鏈表。在這種情況下,插入到末尾將是O(n)時間,訪問是O(n),並且刪除行是O(n^2)。
因此,對於矩陣來說,ArrayList是最好的,但僅僅是因爲訪問效率更高。
0
我認爲,如果您還將圖形的大小存儲在文件的第一行,會更容易。這樣,分配和整個過程會更有效率,而其他任何方面都不會有任何損失。
如果你需要做的撥款爲你增加矩陣,你應該有問題的域名一個合理的規模開始,東西爲2的倍數增加,所以沿着時間,分配的ammount的趨向於穩定,你不必重新分配和重複內容多次。
希望有幫助!
1
你說鄰接表可能是「巨大的」。如果它也是稀疏的,那麼用某種稀疏矩陣表示可能會更好。它甚至可能因爲內存佔用大大減少而優於2d ArrayList。
相關問題
- 1. 在CUDA中轉換矩陣的最有效方法是什麼?
- 2. 什麼是一維情況下方差的等效協方差矩陣?
- 3. 在Fortran中存儲不同大矩陣的最佳方法
- 4. 在MySQL中存儲和訪問巨大數據矩陣的最有效方法
- 5. JNI:在事先不知道大小的情況下創建jobjectArray
- 6. 知道指針指向的有效元素大小的方法是什麼?
- 7. 使用鄰接列表和鄰接矩陣的圖的大小?
- 8. 在不知道最大線條的情況下使TextView滾動
- 9. 的R - 構建鄰接矩陣基於其它鄰接矩陣
- 10. 鄰接矩陣R中的兩種不同情況
- 11. 矩陣乘法最壞的情況下,最好的情況下和平均情況下的複雜性
- 12. 在不知道矩陣的情況下屏蔽XYZ到XY的世界
- 13. 我不知道爲什麼會出現在我的情況下
- 14. 如何在不知道類名的情況下調用方法?
- 15. 在C++中實現大輸入矩陣的最有效方法?
- 16. 如何知道什麼是視圖在同樣的情況下比其他
- 17. 在不降低視頻質量的情況下調整FLV大小的最佳方法是什麼?
- 18. 在MySQL中存儲URL的最有效方式是什麼?
- 19. 在某種情況下攔截和忽略方法調用的最有效方法是什麼?
- 20. 矩陣的最小存儲索引
- 21. 有什麼方法可以在不知道包名的情況下加載特定路徑中的所有類?
- 22. 不知道在這種情況下使用什麼循環
- 23. 鄰接矩陣
- 24. 在不知道其結構的情況下添加到JSON
- 25. 什麼是存儲人類可讀的UUID的最小方法?
- 26. 爲什麼矩陣大小不同?
- 27. 如何在不模擬的情況下存儲Python方法
- 28. 什麼是顯示矩陣大小的合理方式?
- 29. 如何在不知道大小的情況下聲明一個數組? C++
- 30. Java - 在不知道大小的情況下從txt文件填充長數組?
在什麼時候你會知道它的大小? – 2011-02-16 21:14:02
節點存儲在輸入文件中。所以在fileread完成之後。 – xiaolin 2011-02-16 21:15:07