有没有办法将简单矩阵转换为图形?

时间:2016-04-14 22:48:40

标签: c++ matrix graph kruskals-algorithm prims-algorithm

例如,我有一个像这样的矩阵;

  

1 2 3 4
  2 4 5 1
  1 2 4 1
  5 3 2 1

我从这个矩阵中选择3个节点作为随机。如何从这些节点创建图形?是否有任何算法或方法来实现这一目标?我知道如何从图形中建立邻接矩阵,但我现在无法从随机矩阵中生成图形。

编辑:

例如,我选择row:1 col:1作为第一个节点,row:3 col:1作为第二个节点,它应该找到第一个节点和第二个节点之间的最短路径并制作它们的图形。

1 个答案:

答案 0 :(得分:1)

我假设这个4x4矩阵表示来自具有4个节点的图的邻接矩阵。在这种情况下,随机取3个节点意味着选择3个随机行并取相应的列,并且您有一个由其邻接列表定义的简化图。

编辑:

根据您的编辑,16个矩阵项中的每一个都是由其坐标(i,j)唯一标识的节点。这些节点中的每一个将至少连接到他的2到4个邻居。然后需要做一些澄清:

  • 是项目的值,只是16个节点的on标签?
  • 是垂直和水平的唯一移动还是允许对角线?
  • 是由边界限制的移动还是可以翻转(即行的最后一项与第一项连接)?
  • 是每次从一个移动到下一个移动的成本相等,还是每次移动的成本与遍历的节点的值相关?

然后,您可以轻松地为16个项目构建16 * 16 ajacency矩阵,并应用最短路径的方法。