C中的深度优先搜索

时间:2015-04-23 19:07:13

标签: c data-structures hexagonal-tiles

如果我必须遍历一个六边形单元格表,通过进行递归深度优先搜索来检查其中的文本,如图所示排列:[在StackOverflow上键入它显然不会保留格式。]

示例1:

enter image description here

示例2:

enter image description here

将它们识别为“细胞”的最佳方法是什么?换句话说,除了删除文本对角线并将其转换为仅包含数字的2D数组之外,在代码中告诉计算机识别x个特定数量的y字符的最佳方法类似于“单元格”? / p>

提前致谢。

1 个答案:

答案 0 :(得分:1)

表示六边形网格的最简单方法是简单的二维数组,其中有关于单元格邻域的特殊规则。以第二种情况为例,以矩阵形式表示:

char M[][] = 

{
 { 'b', 'g', 'g', 'b', ' ' },
 { 'g', ' ', 'B', 'B', 'B' },
 { 'g', 'B', ' ', 'b', 'g' },
 { 'B', ' ', 'g', 'g', 'g' }
}

m中的列n中的元素是邻居:

  • m
  • 中列m + 1n - 1中的元素
  • m - 1
  • 中列m + 1n中的元素
  • m - 1
  • 中列mn + 1中的元素