单选题

下面最小生成树的Kruskal算法程序中,横线处应该填入的是(     )。

include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

struct Edge {

int u, v, weight;

bool operator <(const Edge & other) const {

return weight < other.weight;

}

}

;

int findParent(int vertex, vector<int> & parent) {

if (parent[vertex] == -1)

return vertex;

return parent[vertex] = findParent(parent[vertex], parent);

}

int main() {

int n, m;

cin >> n >> m;

// n: 顶点数, m: 边数

vector<Edge> edges(m);

vector<int> parent(n, -1);

int totalWeight = 0;

for (int i = 0; i < m; i++)

cin >> edges[i].u >> edges[i].v >> edges[i].weight;

sort(edges.begin(), edges.end());

for (const auto & edge : edges) {

int uParent = findParent(edge.u, parent);

int vParent = findParent(edge.v, parent);

if (__________) {

// 在此处填入选项

parent[uParent] = vParent;

totalWeight += edge.weight;

}

}

}

A

uParent == vParent

B

uParent >= vParent

C

uParent != vParent

D

uParent <= vParent

赣ICP备20007335号-2