Tree 如何用秩并启发式算法计算不相交树的高度?

Tree 如何用秩并启发式算法计算不相交树的高度?,tree,disjoint-sets,disjoint-union,Tree,Disjoint Sets,Disjoint Union,很长时间以来,我一直试图解决一个测验中的问题,但我得到了错误的答案,问题如下:- Consider the program: for i from 1 to 12: MakeSet(i) Union(2, 10) Union(7, 5) Union(6, 1) Union(3, 4) Union(5, 11) Union(7, 8) Union(7, 3) Union(12, 2) Union(9, 6) 假设不相交集数据结构实现为不相交树,带有按秩并启发式 执行代码后,计算结果树高度的乘积

很长时间以来,我一直试图解决一个测验中的问题,但我得到了错误的答案,问题如下:-

Consider the program:

for i from 1 to 12:
MakeSet(i)
Union(2, 10)
Union(7, 5)
Union(6, 1)
Union(3, 4)
Union(5, 11)
Union(7, 8)
Union(7, 3)
Union(12, 2)
Union(9, 6)
假设不相交集数据结构实现为不相交树,带有按秩并启发式

执行代码后,计算结果树高度的乘积。例如,对于由四棵树组成的高度为1、2、3、1的森林,答案是6。(回想一下,树的高度是从根到叶的最长路径上的边数。特别是,仅由一个节点组成的树的高度等于0。)

我解决了这个问题,得到的答案是5(2*2*1),但当我提交它时,它显示出错误,我已经尝试了很多次,请让我计算这个…

我算出了! 答案是2。解释正确:对!将有3棵树的高度为1、1和2。(我在edx上遇到了这个问题,但该提交仅以2作为答案)

我想这棵树应该是这样的:

    tree1,tree2,tree 3
0级:4、1、2

一级:35、69、1012

二级:8711

你可以在这个可视化网站上试试