B站视频:详细算法解说
构建一个parent数组,用来存储每个顶点对应的父亲结点,初始全部置为0,数组从1开始存储
rank数组用来表示每个顶点对应的层次数,初始全部置为0;
edge数组用来存储输入时的边
find_root函数用来查询每个顶点对应的根结点:一直查询x_root的父亲结点,直到为0表示找到父亲结点,返回该点
union_root函数用来连接两顶点对应的根结点:如果两顶点对应的根结点相同,则表示形成回环,返回0;
否则路径压缩,比较rank[x_root],rank[y_root],谁大将另一个根结点挂在谁下面
&nbs