深度优先搜索模板(超有用的~~)
2009-03-11 13:17
204 查看
int t; //t用来标识要搜索的元素
int count; //count用来标识搜索元素的个数
int data[m]
; //data用来存储数据的数组
//注意,数组默认是按照1……n存储,即没有第0行
//下面是4个方向的搜索,
void search(int x, int y)
{
data[x][y] = *; //搜索过进行标记
if(x-1 >= 1 && data[x-1][y] == t)
{
count++;
search(x-1,y);
}
if(x+1 <= n && data[x+1][y] == t)
{
count++;
search(x+1,y);
}
if(y-1 >= 1 && data[x][y-1] == t)
{
count++;
search(x,y-1);
}
if(y+1 <= n && data[x][y+1] == t)
{
count++;
search(x,y+1);
}
}
//下面是8个方向的搜索
void search(int x, int y)
{
data[x][y] = *; //搜索过进行标记
if(x-1 >= 1)
{
if(data[x-1][y] == t)
{
count++;
search(x-1,y);
}
if(y-1 >= 1 && data[x-1][y-1] == t)
{
count++;
search(x-1,y-1);
}
if(y+1 <= n && data[x-1][y+1] == t)
{
count++;
search(x-1,y+1);
}
}
if(x+1 <= n)
{
if(data[x+1][y] == t)
{
count++;
search(x+1,y);
}
if(y-1 >= 1 && data[x+1][y-1] == t)
{
count++;
search(x+1,y-1);
}
if(y+1 <= n && data[x+1][y+1] == t)
{
count++;
search(x+1,y+1);
}
}
if(y-1 >= 1 && data[x][y-1] == t)
{
count++;
search(x,y-1);
}
if(y+1 <= n && data[x][y+1] == t)
{
count++;
search(x,y+1);
}
}
int count; //count用来标识搜索元素的个数
int data[m]
; //data用来存储数据的数组
//注意,数组默认是按照1……n存储,即没有第0行
//下面是4个方向的搜索,
void search(int x, int y)
{
data[x][y] = *; //搜索过进行标记
if(x-1 >= 1 && data[x-1][y] == t)
{
count++;
search(x-1,y);
}
if(x+1 <= n && data[x+1][y] == t)
{
count++;
search(x+1,y);
}
if(y-1 >= 1 && data[x][y-1] == t)
{
count++;
search(x,y-1);
}
if(y+1 <= n && data[x][y+1] == t)
{
count++;
search(x,y+1);
}
}
//下面是8个方向的搜索
void search(int x, int y)
{
data[x][y] = *; //搜索过进行标记
if(x-1 >= 1)
{
if(data[x-1][y] == t)
{
count++;
search(x-1,y);
}
if(y-1 >= 1 && data[x-1][y-1] == t)
{
count++;
search(x-1,y-1);
}
if(y+1 <= n && data[x-1][y+1] == t)
{
count++;
search(x-1,y+1);
}
}
if(x+1 <= n)
{
if(data[x+1][y] == t)
{
count++;
search(x+1,y);
}
if(y-1 >= 1 && data[x+1][y-1] == t)
{
count++;
search(x+1,y-1);
}
if(y+1 <= n && data[x+1][y+1] == t)
{
count++;
search(x+1,y+1);
}
}
if(y-1 >= 1 && data[x][y-1] == t)
{
count++;
search(x,y-1);
}
if(y+1 <= n && data[x][y+1] == t)
{
count++;
search(x,y+1);
}
}
相关文章推荐
- 搜索------深度优先DFS-----模板2:例1 例2 例3 例4
- 搜索------深度优先DFS-----模板1:例1 例2 例3 例4
- DFS深度优先搜索模板
- 深度优先搜索例题------Java倒油
- 算法之深度优先搜索和广度优先搜索
- 深度优先搜索 之 CODE[VS] 1295 N皇后问题
- 深度优先搜索的总结及提升
- 图基本算法 图搜索基于邻接表的(广度优先、深度优先)
- 图搜索之A*算法、深度优先搜索和广度优先搜索
- (深度优先搜索第一课) 统计三角形 - DFS
- 输入一个1~9之间的数字 ,对 1到该数之间所有的数进行全排序(深度优先搜索的基本模型)
- 深度优先搜索1-A Knight's Journey(算法基础 第6周)
- 人工智能搜索算法(深度优先、迭代加深、一致代价、A*搜索)
- 【BFS】广度优先搜索&【DFS】深度优先搜索
- 求解:栈的应用 深度优先搜索:迷宫问题
- 深度优先搜索DFS
- 迷宫--深度优先搜索
- 深度优先搜索与广度优先搜索
- NetWork(LA 3902)深度优先搜索
- 过河卒 深度优先搜索与递推