试设计迷宫求解算法

x_yanx 2010-11-02 11:44:36
迷宫是一个m行n列的0-1矩阵,其中0表示无障碍,1表示有障碍。设入口为(1,1),出口为(m,n),每次移动只能从一个无障碍的单元移到其周围8个方向上任何一个无障碍的单元。设计一个算法:给出一条通过迷宫的路径或报告一个“无法通过”的信息。
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DontKissBossAss 2010-11-02
  • 打赏
  • 举报
回复
http://download.csdn.net/source/1998610

MFC写的,有界面的。。。。 路障是墙表示,能过就是绿草地
青蛙能会告诉你程序怎么走的。
小驴 2010-11-02
  • 打赏
  • 举报
回复
不知道是不是你想要的...


http://zhidao.baidu.com/question/36874489.html?fr=ala0

还有一个是CSDN下载的

http://download.csdn.net/source/2548624

好好研究下,自己以后就会写了...
hdusunny 2010-11-02
  • 打赏
  • 举报
回复
思路:用堆栈结构,遇到分岔就push,走不通时pop。
miracle222 2010-11-02
  • 打赏
  • 举报
回复

#include <stdio.h>

#define M 7
#define N 7

struct point
{
int x;
int y;
};

int main()
{
int maze[M][N] =
{
0, 0, 1, 1 ,0, 1, 0,
0, 0, 1, 1 ,0, 1, 0,
0, 0, 0, 1 ,0, 1, 0,
0, 0, 0, 0 ,0, 0, 0,
0, 1, 1, 1 ,0, 1, 0,
0, 1, 1, 0 ,0, 1, 0,
0, 0, 1, 1 ,0, 0, 0,
};
int count = 0;
int i,j;
int flag = 0;

struct point route[50];
route[0].x = route[0].y = 0;
++count;
maze[0][0] = 1;

while(count>0)
{
i=route[count-1].x;
j=route[count-1].y;

if((i<M-1) && (maze[i+1][j]==0))
{
route[count].x = i + 1;
route[count].y = j;
maze[i+1][j] = 1;
++count;
}
else if((j<N-1) && (maze[i][j+1]==0))
{
route[count].x = i;
route[count].y = j + 1;
maze[i][j+1] = 1;
++count;
}
else if((i>0) && (maze[i-1][j]==0))
{
route[count].x = i - 1;
route[count].y = j;
maze[i-1][j] = 1;
++count;
}
else if((j>0) && (maze[i][j-1]==0))
{
route[count].x = i;
route[count].y = j - 1;
maze[i][j-1] = 1;
++count;
}
else
{
if((i==M-1) && (j==N-1))
{
flag = 1;
break;
}
--count;
}
}

if(flag == 1)
{
printf("Route exist!\n");

for(i=0; i<count-1; ++i)
{
printf("#%d: [%d, %d] -> [%d, %d]\n", i+1, route[i].x, route[i].y, route[i+1].x, route[i+1].y);
}
}
else
{
printf("Can't go through the maze!\n");
}

return 0;
}

yui 2010-11-02
  • 打赏
  • 举报
回复
java的,4个方向,还没时间改成C

http://blog.csdn.net/yui/archive/2010/09/30/5916716.aspx
内容简介: 无论你是从事业务开发,还是从事架构设计,想要优化设计模式,数据结构与算法是必备的一门学科,本课程使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。为什么学数据结构与算法算法是一个程序员真正的核心竞争力。无论用哪种语言做开发,算法从程序角度而言都是灵魂内核般的存在。程序的躯体可以各式各样,但是内核一定要追求高效整洁。同时掌握了算法,大厂名企的Offer不再是梦寐以求的梦想,而让程序高效且健壮,也不再是难以完成的技术难题。所以无论是为提升自我内功修炼,还是提升程序灵魂内核健全,学习算法,都是现有可供选项里的最优解。课程大纲:为了让大家快速系统了解数据结构与算法知识全貌,我为你总结了「数据结构与算法框架图」,帮你梳理学习重点,建议收藏!! CSDN学院Java答疑群:

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧