我使用快速合并算法来查找前五个站点中是否有一个与后五个站点之一相连。
前五个站点具有相同的根,即倒数第二个数组元素。后五个站点也具有相同的根,即最后一个数组元素。
结果如下:
但是,左侧两个网站被突出显示并不正确。
我应该使用什么算法来仅突出显示正确的路径?
连接方法:
根权限方法
前五个站点具有相同的根,即倒数第二个数组元素。后五个站点也具有相同的根,即最后一个数组元素。
for (let i = 0; i < 5; i++) {
this.union(i,this.array.length-2);
}
for (let j = this.array.length-this.number-2; j < this.array.length-2; j++) {
this.union(j,this.array.length-1);
}
我用于突出显示网站的代码如下:
let id = this.array[this.array.length-2]
for (let i = 0; i < this.array.length-2; i++) {
if(this.connected(i,id) && $("#result td").eq(i).hasClass('opened')){
$("#result td").eq(i).css({'background':'blue'});
}
}
结果如下:
![输入图像描述](https://istack.dev59.com/pRqj5.webp)
![输入图像描述](https://istack.dev59.com/u9csO.webp)
连接方法:
connected(p, q){
return this.root(p) === this.root(q);
}
根权限方法
root(index){
while(this.array[index] !== index) index = this.array[index];
return index;
}