Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 树上的联合查找操作?_Algorithm_Data Structures_Graph_Tree_Union Find - Fatal编程技术网

Algorithm 树上的联合查找操作?

Algorithm 树上的联合查找操作?,algorithm,data-structures,graph,tree,union-find,Algorithm,Data Structures,Graph,Tree,Union Find,有人能用黑体字解释一下答案吗?怎么做的 下面是四个联合查找操作的序列(使用加权联合和完全com- 按)可进入后续树。最后两次行动是什么 回答:Union(D,A),Union(B,C),Union(D/A,B/C),Find(B/C)。 之所以使用该符号,是因为集合 让我们应用四个操作: 联合(D,A)导致以下树: D / A B / C 联合(B,C)导致以下树: D / A B / C 现在,Union(D/A,B/C)意味着因为D和A

有人能用黑体字解释一下答案吗?怎么做的

下面是四个联合查找操作的序列(使用加权联合和完全com- 按)可进入后续树。最后两次行动是什么

回答:Union(D,A),Union(B,C),Union(D/A,B/C),Find(B/C)。


之所以使用该符号,是因为集合

让我们应用四个操作:

联合(D,A)
导致以下树:

   D
  /
 A
   B
  /
 C
联合(B,C)
导致以下树:

   D
  /
 A
   B
  /
 C
现在,
Union(D/A,B/C)
意味着因为D和A属于同一个集合,所以不管第一个参数是什么,它可以是
D
,也可以是
A
。同样地,因为B和C属于同一个集合,第二个参数是什么并不重要,它可以是
B
,也可以是
C
结果将是相同的

结果将在第三次操作后显示:

   D
  / \
 A   B
      \
       C
现在,由于还允许压缩,因此
Find(C)
操作将生成树:

   D
  /|\ 
 A B C
如果第四个操作是
Find(B)
,则树将保持不变,因为当我们在Find操作后应用压缩时,我们将使路径中遇到的所有节点都成为根的直接子节点,但因为我们不会遇到
C
,我们将无法使
C
成为
D
的直接子级,因为它在最后一个树中

正确答案

四个操作的正确顺序是:

Union(D,A), Union(B,C), Union(D/A,B/C),Find(C).

由于集合而使用该符号

让我们应用四个操作:

联合(D,A)
导致以下树:

   D
  /
 A
   B
  /
 C
联合(B,C)
导致以下树:

   D
  /
 A
   B
  /
 C
现在,
Union(D/A,B/C)
意味着因为D和A属于同一个集合,所以不管第一个参数是什么,它可以是
D
,也可以是
A
。同样地,因为B和C属于同一个集合,第二个参数是什么并不重要,它可以是
B
,也可以是
C
结果将是相同的

结果将在第三次操作后显示:

   D
  / \
 A   B
      \
       C
现在,由于还允许压缩,因此
Find(C)
操作将生成树:

   D
  /|\ 
 A B C
如果第四个操作是
Find(B)
,则树将保持不变,因为当我们在Find操作后应用压缩时,我们将使路径中遇到的所有节点都成为根的直接子节点,但因为我们不会遇到
C
,我们将无法使
C
成为
D
的直接子级,因为它在最后一个树中

正确答案

四个操作的正确顺序是:

Union(D,A), Union(B,C), Union(D/A,B/C),Find(C).

任何疑问都可以,任何疑问都可以,回答得很好。非常感谢你这么好的回答。非常感谢