城市最短路径问题--图的广度优先搜索
2017-05-31 13:39
260 查看
#include<stdio.h> const int n=8; char city_name[8]={'A','B','C','D','E','F','G','H'}; int jz[8][8]= { {0,1,1,1,0,1,0,0}, {1,0,0,0,0,1,0,0}, {1,0,0,1,1,0,0,0}, {1,0,1,0,0,0,1,0}, {0,0,1,0,0,0,1,1}, {1,1,0,0,0,0,0,1}, {0,0,0,1,1,0,0,1}, {0,0,0,0,1,1,1,0} }; struct { int city,pre; } sq[100]; int qh,qe,i,visited[100]; void search(); void out(); void main( ) { for(i=0;i<n;i++) visited[i]=0; search( ); printf("\n"); } void search() { qh=0; qe=1; sq[0].city=1; sq[0].pre=0; visited[0]=1; while(qh!=qe) { qh=qh+1; for(i=0;i<n;i++) if(jz[sq[qh].city][i]==1&&visited[i]==0) { qe=qe+1; sq[qe].city=i; sq[qe].pre=qh; visited[i]=1; if(sq[qe].city==7) { out(); return ; } } } printf("Non solution.\n"); } void out() { printf("%c",city_name[sq[qe].city]); while(sq[qe].pre!=0) { qe=sq[qe].pre; printf("<--%c",city_name[sq[qe].city]); } }
相关文章推荐
- 两个城市之间寻找最短路径问题(广度优先搜索)
- 最短路径问题 eg.城市平乱
- 广度优先搜索求最短路径问题
- 城市间最短路径问题(SQL解决方案)
- 最短路径问题的延伸
- 动态规划解最短路径问题
- 单源加权图最短路径问题(权值非负)-Dijkstra算法
- 单源加权图最短路径问题2-BellmanFord算法
- 图::最短路径问题
- 单源最短路径问题
- Dijstra算法实现求解单源最短路径问题
- 最短带权路径问题的解法::Dijkstra & Floyd
- 最短路径问题
- Dijkstra算法是解单源最短路径问题的一个贪心算法
- 最短路径问题
- 完全最短路径问题Floyd算法 pku 1125 Stockbroker Grapevine
- 具有障碍物的欧几里德最短路径问题
- 关于最短源路径问题
- K条最短路径问题
- 最短路径问题