第17周 啊哈算法 图的遍历算法-最少转机
2016-07-20 11:04
239 查看
问题及代码:
/*广度优先搜索算法-最少转机*/
#include<stdio.h>
struct note
{
int x; //城市编号
int s; //转机次数
};
int main()
{
int i,j,n,m,a,b,cur,e[51][51]={0},book[51]={0},head,tail;
int start,end,flag=0;
struct note que[2501];
scanf("%d %d",&n,&m,&start,&end);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) e[i][j]=0;
else e[i][j]=9999999;
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
e[a][b]=1;
e[b][a]=1;
}
head=1;
tail=1;
que[tail].x=start;
que[tail].s=0;
tail++;
book[1]=start; //标记start号城市已在队列中
while(head<tail)
{
cur=que[head].x;
for(i=1;i<=n;i++)
{
if(e[cur][i]==1 && book[i]==0)
{
que[tail].x=i;
que[tail].s=que[head].s+1; //转机次数+1
tail++;
book[i]==1;
}
if(que[tail].x==end)
flag=1;
break; //退出内循环
}
if(flag==1)
break; //退出外循环
head++;
}
printf("%d",que[tail-1].s); //输出最少的转机次数
getchar();getchar();
return 0;
}
结果出错!为何?
/*广度优先搜索算法-最少转机*/
#include<stdio.h>
struct note
{
int x; //城市编号
int s; //转机次数
};
int main()
{
int i,j,n,m,a,b,cur,e[51][51]={0},book[51]={0},head,tail;
int start,end,flag=0;
struct note que[2501];
scanf("%d %d",&n,&m,&start,&end);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) e[i][j]=0;
else e[i][j]=9999999;
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
e[a][b]=1;
e[b][a]=1;
}
head=1;
tail=1;
que[tail].x=start;
que[tail].s=0;
tail++;
book[1]=start; //标记start号城市已在队列中
while(head<tail)
{
cur=que[head].x;
for(i=1;i<=n;i++)
{
if(e[cur][i]==1 && book[i]==0)
{
que[tail].x=i;
que[tail].s=que[head].s+1; //转机次数+1
tail++;
book[i]==1;
}
if(que[tail].x==end)
flag=1;
break; //退出内循环
}
if(flag==1)
break; //退出外循环
head++;
}
printf("%d",que[tail-1].s); //输出最少的转机次数
getchar();getchar();
return 0;
}
结果出错!为何?
相关文章推荐
- Python layer
- 关于rem这个单位
- Entity framewok 如何实现多条记录作为一条取出, for xml path如何实现
- Tmux 的常用命令详解
- UVA 579-Clock Hands
- listview和gridView混用,点击失效问题
- win10和ubuntu双系统启动
- JDK1.7和JDK1.8新特性
- vector 中 erase 用法注意事项
- Scrapy安装指南(不需要安装Visual Studio和Mingw)
- 导mysql数据,遇到 longtext 类型,navicat导出会出现乱码
- UVA 10879-Code Refactoring
- poj 1190 ROADS
- Weird Shader Problem On OpenGLES 3.0
- redis数据类型Hash的常用命令
- 逻辑地址 虚拟地址 基地址 物理地址
- 冷血格斗场 (map)
- tmux入门 : 3. 会话
- sql server判断表是否存在
- 初学IOS_UI基础,滑动面板_纯代码版_有GIF图_有源文件