我正在寻找用于表示Graph的不同数据结构,我来自Nvidia CUDA Toolkit,并找到了在source_indices,destination_offsets的帮助下表示图形的新方法。
这种创新的图表表示着迷,我搜索了其他表示图形的方法。但没有找到任何新的东西。
我想知道除了邻接矩阵或列表之外是否还有其他方式来表示图...
答案 0 :(得分:2)
我想知道是否还有其他方式来表示Graph other 比邻接矩阵或列表...
邻接列表或邻接矩阵有其他选择,例如边缘列表,邻接地图或前卫明星等等。鉴于此图(从here获取的图像):
如果您进入研究领域,您会发现针对特定情况的大量方法,主要是优化,并考虑以下因素:
例如,这些优化可以在预处理阶段中支持重新排序节点,以增加引用位置。 最短路径算法有很多工作,特别是在计算世界地图中的最短路径时。
优化的一个示例是动态图结构(Packed-Memory Graph (PMG)),适用于大型交通网络。
答案 1 :(得分:0)
使用邻接集表示图的另一种表示形式。它与邻接列表非常相似,但是不使用链接列表,而使用不交集[Union-Find]。您可以了解有关不相交集ADT here的信息。
如果E是图形中的边数,而V是图形中的顶点数,则图形的邻接集表示将占据(E + V)空间。
使用邻接集表示时其他操作的复杂性:
Checking edge between vertex v and w : log(Degree(v))
Iterate over edges incident to vertex v: Degree(v)