此版本的Kruskal算法表示具有邻接列表的边缘。 如何修改伪代码而不是使用邻接矩阵?
我在想你,我们需要使用边缘的权重,例如(i,j),只要它不为零。将顶点分配给i,j。我可能对这个Kruskals的伪代码感到有点困惑。
答案 0 :(得分:2)
正如Henry所指出的,伪代码没有具体说明要使用的具体数据结构。在这种情况下,似乎图的邻接列表表示比邻接矩阵表示更方便。
对于邻接矩阵,您只需要扫描矩阵的每个条目,对第4行的图let patientRetrievedArray = getArray()
的边进行排序。当使用邻接列表表示时,您正在执行完全相同的操作。
在您的情况下,您可以使用G
按重量按非递减顺序对边进行排序,并丢弃具有断开连接顶点的条目。然后,您可以在第5行的PriorityQueue
中迭代此数据结构。