假设有2个网页,并且平均每个网页具有2个超链接。考虑如果在顶点所代表的网页之间存在超链接,那么每个网页具有一个顶点和两个顶点之间的边的有向图。使用邻接矩阵表示图表需要多少太字节?使用邻接列表?我的问题是列表和矩阵之间的主要区别是什么?使用邻接列表和邻接矩阵的图的大小?
1
A
回答
3
要回答你的问题,“矩阵的列表表示和矩阵表示之间的主要区别是什么?”
A 列表表示通常是一个元组列表,其中列表的每个元素是一个节点,元组是连接到它的节点。说,我们有3个节点A
,B
,C
,所以我们将具有长度3的列表说存在从A
一个节点 - >B
,然后在第A
位置元件,比方说第一个元素,将包含节点B
。假设还有一个从A
- >C
的链接,第一个元素将包含B
和C
。邻接列表所需的总空间是(表示节点的空间)*(边的数量)。
另一方面,矩阵表示是一个矩阵,通常实现为一个二维数组,其中每个节点都列在行和列轴上。如果在2个节点之间存在链接,则在矩阵中标记该点。例如,如果我们有3个节点A
,B
,C
,我们有一个3x3阵列array
。让我们把A
=指数0
,B
=指数1
,C
=指数2
,并假设我们有一个链接从A
- >B
,然后在1
在array[0][1]
填写。如果我们的图表没有定向,我们还会在array[1][0]
处添加一个1
。所需的总空间是每个链接所需空间N^2倍的节点数(可以用1位,0
或1
来完成),因此总数= N^2。
一个列表很适合稀疏图,因为它不需要任何额外的存储空间。也就是说,不存在的链接不代表任何事物。相比之下,如果我们的图表非常密集,则表示更好,因为每个可能的链接仅由1位(0或1)表示。从上面的示例中可以看出,列表表示所需的总空间是的边数的函数,而矩阵表示的空间是节点数的函数。
现在想想你的具体问题。你会有多少个节点?总边缘?这看起来稀疏或密集?
相关问题
- 1. 使用邻接矩阵或列表的图的最小尺寸
- 2. 邻接矩阵
- 3. 的R - 构建邻接矩阵基于其它邻接矩阵
- 4. 邻接矩阵图实现
- 5. 社交网络图是如何实现的?邻接列表或邻接矩阵
- 6. 试图将邻接列表转换为Python中的邻接矩阵
- 7. 图的邻接矩阵实现
- 8. 如何从邻接矩阵建立邻接表?
- 9. matlab将邻接矩阵转换为邻接表
- 10. 从列表,其中邻接装置相等的元素生成邻接矩阵
- 11. 如何将邻接列表转换为R中的邻接矩阵?
- 12. 发现邻接矩阵
- 13. 索引邻接矩阵
- 14. 从python中的矩阵创建邻接列表图表
- 15. 如何使用邻接矩阵
- 16. 使用邻接矩阵表示有向图的Java方法
- 17. 从JUNG图创建邻接矩阵
- 18. 图邻接矩阵分段故障
- 19. 更好的方法来创建边缘列表矩阵使用邻接矩阵
- 20. 试图使用链接列表和向量使邻接列表
- 21. 网络分析和邻接矩阵
- 22. 使用igraph创建邻接网络矩阵(或列表)igraph
- 23. 序言中的邻接矩阵
- 24. 如何排序的邻接矩阵
- 25. 多图和邻接表
- 26. 邻接列表C++
- 27. 邻接列表indegree
- 28. 邻接矩阵列表O(m + n)上的BFS如何?
- 29. 一个边界列表R的多个邻接矩阵R
- 30. R中稀疏连接图的邻接矩阵
这是功课吗?你有没有试图找出每种方法需要多少存储空间? – Flexo 2011-02-10 21:47:07