繁体   English   中英

通过将网格读取到数组中的C中的图算法

[英]Graph algorithm in C by reading grids into array

我需要从控制台读取一些对象,有点像用C语言编写的战舰游戏。考虑到它我有一个6x6数组的平台,我从用户那里获取用户输入,而字符'X'表示它是二维数组中的阴影区域。我正在为36个位置分配字符。用户给出输入后的数组示例为;

0,0                       0,6      

  X              XXX
 X                X  
   XX             X 
     X




6,0                       6,6

抱歉,输出不是很清楚,它是用户输入的X字符的输出。两组中的'x'字符是并集的,因此图中有2个对象。我需要计算X字符的方向不能是对称的,所有的事情可能是有x字符组合在一起的组,我想计算这些组

将问题建模为图形(如您已经了解的): G=(V,E) ,其中V是您的网格(或更确切地说,只有x ),而E = { (u,v) | there is X in both u and v } E = { (u,v) | there is X in both u and v }

解析期间,将所有坐标保存在一个容器中,并将每个坐标映射到一个布尔值,指示是否已访问它。

现在,在仍然没有访问过的x的同时重复:
从该(未访问) x运行图发现算法(以BFS为例),并标记在发现算法运行期间遇到的所有已访问x

迭代次数(调用BFS的次数)是组的数目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM