/*
Name:floodfill-4dir
Coder:Lou Jianghui
*/
- Code
#include<iostream>
#include<stdlib.h>
using namespace std;
#define N 10
int dir[4][2] = {
0, -1,
0, 1,
-1, 0,
1, 0,
};
char map[N+1][N+1] = {
" #######",
"# ####",
"### ####",
"### # ##",
"### ##",
"### ####",
"### ## ##",
"### # ##",
"#### ##",
"##########",
};
void print()
{
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
cout << map[i][j];
if (j == N - 1)
cout << endl;
}
}
}
void fill(int i, int j)
{
if (i < N&&i >= 0 && j < N&&j >= 0&&map[i][j]==' '){
map[i][j] = '1';
for (int k = 0; k < 4; k ++ ){
fill(i + dir[k][0],j + dir[k][1]);
}
}
}
int main()
{
int i, j;
print();
cin >> i >> j;
fill(i, j);
print();
system("pause");
return 0;
}
2.回溯算法基本格式:
void search(int row, int col)
{
if (){
}
else{
for (){
if (canmoveto(r,c)){
search(, );
}
}
}
}
原创文章,转载随意,请带出处