用广度优先搜索解迷宫问题 By LYLtim
2011-10-21 20:09
513 查看
//By LYLtim #include<stdio.h> const int di[4] = {0,1,0,-1}, dj[4] = {1,0,-1,0}; unsigned maze[5][5] = { 2, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0}, head = 0, tail = 1; struct { int i, j; } que[23] = {0}; void print_maze(void) { int i, j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) printf("%d ", maze[i][j]); putchar('\n'); } printf("*********\n"); } int main(void) { while (head != tail) { head = (head + 1) % 23; int i; for (i = 0; i < 4; i++) if (que[head].i + di[i] >= 0 && que[head].i + di[i] < 5 && que[head].j + dj[i] >= 0 && que[head].j +dj[i] < 5 && maze[que[head].i + di[i]][que[head].j +dj[i]] == 0) { que[tail = (tail + 1) % 23].i = que[head].i + di[i]; que[tail].j = que[head].j +dj[i]; maze[que[head].i + di[i]][que[head].j +dj[i]] = 2; if (que[head].i + di[i] == 4 && que[head].j +dj[i] == 4) { printf("Have path.\n"); exit(0); } } print_maze(); } printf("No path.\n"); return 0; }
运行结果如下:
2 1 0 0 0 2 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 ********* 2 1 0 0 0 2 1 0 1 0 2 0 0 0 0 0 1 1 1 0 0 0 0 1 0 ********* 2 1 0 0 0 2 1 0 1 0 2 2 0 0 0 2 1 1 1 0 0 0 0 1 0 ********* 2 1 0 0 0 2 1 0 1 0 2 2 2 0 0 2 1 1 1 0 0 0 0 1 0 ********* 2 1 0 0 0 2 1 0 1 0 2 2 2 0 0 2 1 1 1 0 2 0 0 1 0 ********* 2 1 0 0 0 2 1 2 1 0 2 2 2 2 0 2 1 1 1 0 2 0 0 1 0 ********* 2 1 0 0 0 2 1 2 1 0 2 2 2 2 0 2 1 1 1 0 2 2 0 1 0 ********* 2 1 0 0 0 2 1 2 1 0 2 2 2 2 2 2 1 1 1 0 2 2 0 1 0 ********* 2 1 2 0 0 2 1 2 1 0 2 2 2 2 2 2 1 1 1 0 2 2 0 1 0 ********* 2 1 2 0 0 2 1 2 1 0 2 2 2 2 2 2 1 1 1 0 2 2 2 1 0 ********* 2 1 2 0 0 2 1 2 1 2 2 2 2 2 2 2 1 1 1 2 2 2 2 1 0 ********* 2 1 2 2 0 2 1 2 1 2 2 2 2 2 2 2 1 1 1 2 2 2 2 1 0 ********* 2 1 2 2 0 2 1 2 1 2 2 2 2 2 2 2 1 1 1 2 2 2 2 1 0 ********* Have path.
相关文章推荐
- 广度优先搜索 迷宫 问题 java实现
- 广度优先搜索BFS(迷宫问题)
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
- 迷宫问题(广度优先搜索,输出最短路径)
- 用广度优先搜索解迷宫问题
- poj 3984 迷宫问题 BFS 图的广度优先搜索
- 广度优先搜索-迷宫问题(算法基础 第8周)
- BFS-迷宫问题-用宽度(广度)优先搜索解决最优路径问题
- scala 广度优先搜索解决迷宫问题
- 机试算法讲解: 第41题 广度优先搜索之迷宫问题
- 广度优先搜索解决迷宫问题
- 广度优先搜索求解迷宫问题
- 用广度优先搜索解一个NOI迷宫问题
- 九度OJ 教程86 广度优先搜索解决迷宫问题之《胜利大逃亡》
- 广度优先搜索求解迷宫问题
- 用广度优先搜索解迷宫问题
- 广度优先搜索:迷宫问题
- 用深度优先搜索解迷宫问题 By LYLtim
- 广度优先搜索--POJ迷宫问题
- 写给妹妹的编程札记 5 - 搜索: 迷宫问题 - 广度优先搜索