2015-04-23 118 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