急!!!!100分问题!C++递归算法!

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:00:06
在线等,一个类似于扫雷扩展空白的递归算法!急~~~!或者不是递归的也行!
看算法好坏的话,另外追加分!
就是一个矩阵中只有0和1,其中给定一个是0的下标,求出这个下表周围是0的所有数的下标。。
例如 11001 中给出 一个下标 “02” 输出 02,03,13
11101
10111

#include<iostream>

using namespace std;

//设元素值为‘0’的坐标点为光点
int main(int argc, char* argv[])
{
const int WIDTH = 100;
char lib[WIDTH][WIDTH] = {0}; //预设最大空间
bool templib[WIDTH][WIDTH] = {0};//用来存储当前位置的光点是否被处理过
int n, m;
cout << "输入行和列数:";
cin >> n >> m;
cout << "输入数据:";
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
cin >> lib[i][j];
if (lib[i][j] != '0')
templib[i][j] = true;
}
}

int stack[WIDTH*WIDTH][2] = {0};//存储栈内元素的坐标
int top = 0;//栈顶
int pos = 0;//当前被处理栈元素
int x, y;
cout << "输入指定坐标:";
cin >> x >> y; //给定一个是0的下标
top = pos = 0; //归零
templib[x][y] = true;//标记当前位置的光点已经被处理过