克鲁斯卡尔重构树_并查集 Kruskal重构树

什么是Kruskal重构树?

Kruskal重构树,和Kruskal算法的思想差不多,就是在这个过程中建出一个有着非常优秀的性质的数据结构,这是一个非常少见和小众的算法,但是如果碰到了合适的题目,就会体现出其优越性。

实现过程

先将边权排序(排序的方式决定了这颗重构树的性质),我们把边排完序之后依次遍历每条边,如果这条边两端的\(u,v\)不在同一并查集内,那么就新建一个节点\(node\),我们设\(u,v\)两点在并查集中的根分别为\(root_u,root_v\),那么我们连接\(node,root_u\)\(node,root_v\),然后用并查集更新\(root_u,root_v\)\(father\)都更新为\(node\),最后把这个点的点权相应的记录为这条边的边权,一直这样不断的连边,那么我们就建出来了一颗Kruskal重构树。