# 对BFS的感受

BFS的感受

我们在培训基地接触到的第一个名词是DFS，第二个是BFS。后来感触最深的是BFS

#include<stdio.h>

static int N1,N2,N3,M;

int panduan(int map[100][100][100],int a2,int a3,int a4,int bushu)

{

if(a2==N1-1&&a3==N2-1&&a4==N3-1)

{

if(bushu>M)

bushu=-1;

printf("%d\n",bushu);

return 0;

}

else if(bushu>N1*N2*N3)

{

printf("-1\n");

return 0;

}

else{

if(map[a2][a3][a4]==1)

return 0;

else

{

bushu++;                                                  //步数加一

map[a2][a3][a4]=1;

if(a2-1>=0) panduan( map,a2-1,a3,a4,bushu);                  //向外延伸

if(a2+1<=N1) panduan(map,a2+1,a3,a4,bushu);

if(a3-1>=0) panduan(map,a2,a3-1,a4,bushu);

if(a3+1<=N2-1) panduan(map,a2,a3+1,a4,bushu);

if(a4-1>=0) panduan(map,a2,a3,a4-1,bushu);

if(a4+1<=N3-1) panduan(map,a2,a3,a4+1,bushu);

}

}

}

void main()

{

int i1,map[100][100][100],i,j,k,N;

scanf("%d",&N);

for(i1=0;i1<N;i1++)

{

scanf("%d %d %d %d",&N1,&N2,&N3,&M);               //输入地图的大小

for(i=0;i<N1;i++)

{

for(j=0;j<N2;j++)

{

for(k=0;k<N3;k++)

scanf("%d",&map[i][j][k]);

}

}

panduan(map,0,0,0,0);

}

}

#include<stdio.h>
struct point
{int a1,a2,a3,count;
}queue[100000];
static map[100][100][100];
void enqueue(struct point p)                                             //插入队列
{
p.count++;
queue[tail++]=p;
}
struct point dequeue()                                                   //从队列取出
{
}
void visit(int a1,int a2,int a3,int count)                                         //对该点操作
{
struct point visit_point={a1,a2,a3,count};
map[a1][a2][a3]=1;
enqueue(visit_point);
}
void main()
{
int N,n,i,j,k,X,Y,Z,W;
struct point p;
scanf("%d",&N);
for(n=0;n<N;n++)
{
scanf("%d %d %d %d",&X,&Y,&Z,&W);
for(i=0;i<X;i++)
{
for(j=0;j<Y;j++)
{
for(k=0;k<Z;k++)
{
scanf("%d",&map[i][j][k]);
}
}
}
p.a1=0;p.a2=0;p.a3=0,p.count=0;
map[p.a1][p.a2][p.a3]=1;
enqueue(p);
{
p=dequeue();
if(p.a1==X-1&&p.a2==Y-1&&p.a3==Z-1)
break;
if(p.a1-1>=0&&map[p.a1-1][p.a2][p.a3]==0)
visit(p.a1-1,p.a2,p.a3,p.count);
if(p.a1+1<X&&map[p.a1+1][p.a2][p.a3]==0)
visit(p.a1+1,p.a2,p.a3,p.count);
if(p.a2-1>=0&&map[p.a1][p.a2-1][p.a3]==0)
visit(p.a1,p.a2-1,p.a3,p.count);
if(p.a2+1<Y&&map[p.a1][p.a2+1][p.a3]==0)
visit(p.a1,p.a2+1,p.a3,p.count);
if(p.a3-1>=0&&map[p.a1][p.a2][p.a3-1]==0)
visit(p.a1,p.a2,p.a3-1,p.count);
if(p.a3+1<Z&&map[p.a1][p.a2][p.a3+1]==0)
visit(p.a1,p.a2,p.a3+1,p.count);
}
p.count--;
if(p.a1==X-1&&p.a2==Y-1&&p.a3==Z-1)
{
if(p.count>W)
printf("-1\n");
else
printf("%d\n",p.count);
}
else
printf("-1\n");
}
}
(昨天上传错了，那个程序是我参考的刘敏的，这个才是我做的程序)

• 本文已收录于以下专栏：

## 图像处理感想

• qq_20823641
• 2016年05月10日 11:29
• 555

## 图的邻接表表示及其BFS遍历

• ww1473345713
• 2016年08月09日 14:11
• 330

## 《旧中国的黑社会》读后感

《旧中国的黑社会》读后感 http://book.kongfz.com/19900/725805177/ https://book.douban.com/subject/1429154/ ...
• hello3389
• 2017年09月03日 16:03
• 122

## 原子弹计划之感受

• zhaodandan19910306
• 2013年02月06日 14:51
• 1020

## 对于团队的一些感悟感想

• zamzll
• 2015年06月09日 21:16
• 1526

## 对C#的一点感想

大学时学过JAVA 方面的基本知识，可能由于JBuilder运行速度的原因，对JAVA有些害怕，偶然的接触C#发现这个东西比较新，和JAVA有些相似，网络应用上也不错，出于“喜新厌旧”...
• yuhq
• 2005年01月09日 23:49
• 979

## 读《一个真实的林徽因》有感

• u012369559
• 2014年09月29日 13:24
• 909

## 二叉树 深度优先搜索（DFS）、广度优先搜索（BFS）

• chlele0105
• 2014年08月22日 17:21
• 8047

## 图的广度遍历（BFS)与深度遍历(DFS)

• powerwoo25
• 2015年08月23日 00:46
• 1005

## CNN基本问题

• Hungryof
• 2016年01月11日 22:02
• 3967

举报原因： 您举报文章：对BFS的感受 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)