程序填空题:集合查找
请填空完成下列代码,功能是实现并查集中的“查”,并且带路径压缩。
```c++
SetType Find ( ElementType X, DisjSet S )
{
ElementType root, trail, lead;
for ( root = X; S[root] > 0; @@[root = S[root]](3) ) ;
for ( trail = X; trail != root; trail = lead ) {
lead = S[trail] ;
@@[S[trail] = root](3);
}
return root;
}
```
答案:
第1空:root = S[root]
第2空:S[trail] = root
```c++
SetType Find ( ElementType X, DisjSet S )
{
ElementType root, trail, lead;
for ( root = X; S[root] > 0; @@[root = S[root]](3) ) ;
for ( trail = X; trail != root; trail = lead ) {
lead = S[trail] ;
@@[S[trail] = root](3);
}
return root;
}
```
答案:
第1空:root = S[root]
第2空:S[trail] = root