将给定边缘转换为邻接矩阵

时间:2011-11-08 17:28:57

标签: c++ visual-c++

如果我们将图的边缘作为输入,例如如下所示作为矩阵

    (1,2)
    (2,3)
    (3,1)

并从这些输入中创建邻接矩阵。

我的想法是在包含唯一节点(1,2,3)的向量中迭代矩阵和push_back,然后创建维度等于nodes_vector的零矩阵,再次遍历矩阵并查看哪些节点连接到我们矩阵中的1。

有比这更快的解决方案吗?

1 个答案:

答案 0 :(得分:0)

是。如果元素编号为1-N,那么在第一次运行时,您所要做的就是找到边列表中的最大数字,并且邻接矩阵的宽度将减去1。查找所有唯一节点的速度比您想象的要慢。

当然,如果您确实需要知道实际存在哪些节点,那么您列出的方法是最佳的。