n*n 的方块包有黒色和白色单元,它们按照一定的方式排列。向題是如何计 算出白色区域的数目和每个区域中白色单元的数目。例如,规则的 8X8 的棋盘含
有 32 个白色区域。每个区域含有一个白色单元。图(a)中含有 10 个白色区域,
其中的 2 个区域各包含 10 个单元,另外 8 个区域各包含 2 个单元。图(b)中的
方块含有 5 个白色区域,分别包含 1、3、21、10 和 2 个白色单元。
对于给定的 n×n 方块,编写一个程序,输出白色区域的数目以及每个区域
中白色单元的数目。使用(n+2)×(n+2)的数组,其中的单元进行做了适当标记。
额外的两行和两列组成了围绕输入方块的黑色单元边框,以简化实现过程。例如,
图(b)所示的方块保存为图(c)所示的方块形式。
逐行遍历方块,遇到第一个没有访问过的单元,就调用处理一个区域的函数。
这个函数的奥妙在于对每个没有访问的白色单元使用四次递归调用,并对它标明
一个特殊的“已访问(已计数)标记。
输入:以图 C 形式提供的方块图
输出:统计的白色区域的数目和每个区域中白色单元的数目