我需要在一個鄰接矩陣上存儲一個帶有多個節點(大小未知的可能很大)的非有向圖。二維數組列表是一種有效的方法來存儲這個?如果不是,那麼存儲這些數據的更好方法是什麼?任何意見表示感謝,謝謝!在不知道其大小的情況下,存儲鄰接矩陣的最有效方法是什麼?
-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. 在c#中存儲二進制矩陣的最有效的方法是什麼?
- 2. 在CUDA中轉換矩陣的最有效方法是什麼?
- 3. 在不知道最終大小的情況下使用jQuery動畫DIV大小
- 4. 什麼是一維情況下方差的等效協方差矩陣?
- 5. 在不知道大小的情況下下載文件
- 6. 做矩陣運算matlab的最有效方法是什麼?
- 7. 在這種情況下提取數據的最有效方法是什麼?
- 8. 在Fortran中存儲不同大矩陣的最佳方法
- 9. PonyORM:在不知道哪些項目已存在的情況下向小馬數據庫添加新項目的最有效方法是什麼?
- 10. 在MySQL中存儲和訪問巨大數據矩陣的最有效方法
- 11. 知道指針指向的有效元素大小的方法是什麼?
- 12. JNI:在事先不知道大小的情況下創建jobjectArray
- 13. 在不知道最大線條的情況下使TextView滾動
- 14. 使用鄰接列表和鄰接矩陣的圖的大小?
- 15. 什麼是儲存化學配方的最有效方法?
- 16. 存儲大小是不知道C++
- 17. 知道遠程CMIS文件夾大小的最有效方法
- 18. 的R - 構建鄰接矩陣基於其它鄰接矩陣
- 19. 鄰接矩陣R中的兩種不同情況
- 20. 矩陣乘法最壞的情況下,最好的情況下和平均情況下的複雜性
- 21. 在不知道矩陣的情況下屏蔽XYZ到XY的世界
- 22. 我不知道爲什麼會出現在我的情況下
- 23. 如何知道什麼是視圖在同樣的情況下比其他
- 24. 如何在不知道類名的情況下調用方法?
- 25. 在C++中實現大輸入矩陣的最有效方法?
- 26. 在不創建空白的情況下按比例調整圖像大小的最佳方法是什麼?
- 27. 在不降低視頻質量的情況下調整FLV大小的最佳方法是什麼?
- 28. 在矩陣中定位相鄰元素的有效方法
- 29. 在空間有限的情況下有效存儲信息的不同方式
- 30. 計算矩陣中鄰居數量的最佳方法是什麼?
在什麼時候你會知道它的大小? – 2011-02-16 21:14:02
節點存儲在輸入文件中。所以在fileread完成之後。 – xiaolin 2011-02-16 21:15:07