我还没有实现任何东西,但我正在考虑使用递归来识别网格中“主动连接”到给定单元格的所有单元格,即“活跃”并通过共享一张脸直接连接的单元格与所讨论的(活动)单元格或更远/间接地通过与其(活动)邻居之一共享一张脸连接。断开连接的发生是因为网格中的某些单元格可能被认为是“不活动的”(无论定义如何)。我的想法/伪代码如下:
//Call function to traverse connections
traverse_connections(cell);
//Traverse function definition
bool traverse_connections(cell) {
//Check if cell is inactive or traversed - base case
if (current cell is inactive or traversed) {
return true;
}
//-Mark cell then move on to its neighbors
Mark cell as traversed and add it to the list of 'actively connected' cells;
bool ok = true;
for(neighbor_cell in neighbors of cell) {
ok &= traverse_connections(neighbor_cell);
}
return ok;
}
我认为这涵盖了基本情况,标记了单元格,然后继续对其邻居、邻居的邻居等做同样的事情。这看起来好吗?我是否缺少任何明显的差距?如果有图连接和递归方面的专业知识的人可以参与进来,我将不胜感激。我也很难提出一个迭代等价物。对此的任何想法也将不胜感激。
提前致谢!