我有citie的位置,我将城市视为顶点。我想创造 无向图以便稍后计算最短路径树。我的问题是 如何首先为城市创建无向图?
答案 0 :(得分:1)
图表由顶点和边组成。因此,您的任务是以某种方式收集有关边缘的信息。
如果您没有关于哪些城市通过普通道路直接连接到哪些邻近城市的信息(中间没有城市),那么您可以使用一些启发式假设。例如,您可以安全地假设每个城市的道路都不超过N(让他们说N = 50),然后只需用表示N个最近邻城市道路的边缘填充图表。
要找到这些,你可以把某个城市周围的所有城市,例如半径为M英里(让我们说M = 100),并且那些选择不超过N个最接近的城市。这些城市对将代表图表中的道路。
答案 1 :(得分:0)
通常,图表是使用Adjacency Matrix
或Adjacency List
创建的,无论是称重还是非称重。
邻接矩阵是一个简单的二维数组edge[n][n]
,其中n是顶点数,edge[a][b] = 1 or weight
表示一个& b节点。
edge[a][b] = 0
表示没有联系。对于无向图,邻接矩阵始终是对称的。
根据您可能希望在Adjacency Matrix或Adjacency List之间切换的应用程序类型。前者在图形操作中具有较少的时间复杂度,但与后者相比需要更多的空间。
您可以找到有关Adjacency Matrix here
的更多信息