[英]graph representation with minimum cost (time and space)
我必须用Java表示图,但既不能表示为邻接表,也不能表示为邻接矩阵。
基本思想是
deg[i]
是顶点i的出口度,那么它的邻居可以存储在
edges[i][j]
其中
i <= j <= deg[i]
,但鉴于
edges[][]
必须使用一些值初始化,我不知道如何使其与邻接矩阵不同。
有什么建议么?
据我所知,只有两种方法可以用一种语言表示图形。
您可以制作一个入射矩阵
E1 E2 E3 E4
V1 1 2 1 1
V2 2 1 2 1
V3 1 1 1 2
V4 1 1 2 1
您正在与这个问题的下限作斗争。 该图的两个主要表示形式已经很好地用于它们各自的用途。
因此,要想创造出既对空间又对时间都更有利的东西,您必须将两者的思想结合起来。 同时也将意识到只有更好的实用性能,理论上您不会提高O(1)搜索或O(V * E)大小。
我的想法是将所有图形节点存储在一个数组中。 然后,对于每个节点,都有一个表示为位向量的邻接表。 从本质上讲,这将是一个类似于表示形式的矩阵,但仅适用于图中存在的那些节点,从而为您提供比矩阵小的尺寸。 由于可以针对位向量测试查询节点,因此与邻接表相比,搜索会稍有改善。
还请检查稀疏矩阵表示形式 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.