2015-04-23 115 views
2

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

实施例1:

enter image description here

实施例2:

enter image description here

将它们识别为“细胞”的最佳方法是什么?换句话说,除了删除文本对角线并将它们转换为仅包含数字的二维数组之外,在代码中告诉计算机识别x个特定数量的y个字符的最佳方式就像是一个“单元格?”。

在此先感谢。

回答

1

最简单的方法来表示一个六角网格将是关于细胞的邻域的特殊规则的纯二维数组。把你的例如第二种情况下,以矩阵形式将是:

char M[][] = 

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

元素mn行邻居:在m

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