几天前我问过类似的问题,但我还没有找到解决问题的有效方法。
我正在开发一个简单的控制台游戏,我有一个像这样的二维数组:
1,0,0,0,1
1,1,0,1,1
0,1,0,0,1
1,1,1,1,0
0,0,0,1,0
我试图找到由相邻 1(4 路连接)组成的所有区域。因此,在此示例中,两个区域如下:
1
1,1
1
1,1,1,1
1
and :
1
1,1
1
我一直在研究的算法可以找到单元格邻居的所有邻居,并且在这种矩阵上工作得非常好。然而,当我使用更大的数组(如 90*90)时,程序非常慢,有时使用的巨大数组会导致堆栈溢出。
我的另一个问题上的一个人告诉我连接组件标签是解决我的问题的有效解决方案。
有人可以告诉我任何使用这个算法的C++代码吗,因为我有点困惑它实际上是如何与这个不相交集数据结构一起工作的......
非常感谢您的帮助和时间。