您的位置:首页 > 其它

第16周 啊哈算法 深度优化搜索应用(最短路径算法)

2016-07-12 09:27 543 查看
问题及代码:

/*求最短路径算法
用途:可用于交通系统、营救最优路径
*/

#include<stdio.h>
int n,m,p,q,min=999999;
int a[50][51],book[50][51];

void dsf(int x,int y,int step)
{
//下一步四个方向的数组
int next[4][2]={(0,1),
(1,0),
(0,-1),
(-1,0)};

if(x==p && y==q)
{
if(step<min)
{
min=step;
return;
}
}

int k;
for(k=1;k<=4;k++)
{
x=x+next[k][0];//x一直在第一位,即0
y=y+next[k][1]; //y一直在第二位,即1

if(a[x][y]==0 && book[x][y]==0)//判断坐标是否为障碍物和标记
{
book[x][y]=1;
dsf(x,y,step+1);
book[x][y]=0;
}
return;
}
}

int main()
{
int i,j,startx,starty;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d %d",&n,&m);

scanf("%d %d %d %d",&startx,&starty,&p,&q);
dsf(startx,starty,0);

getchar();getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: