C语言迷宫问题

主要思路:
1. 用一个包含坐标和方向的结点数据类型来存储迷宫中的结点;
2. 将当前结点压入路径栈,探测该结点各方向是否存在通路;
3. 若存在通路,则修改该结点方向为通路方向;
4. 若不存在通路,则将当前结点出栈(实现路径回溯),继续探测上一个通路结点的剩余方向的通路情况,直至找到通路或发现该迷宫无通路,结束进程。
关键:
要注意迷宫边界点方向探测的条件限定,否则会产生不可预测的结果。

/*-----------------------------------------------
功能:迷宫问题,寻找一条简单通路(无重复路径)
输出示例:
The path from (0, 0) to (5, 5) is:
(0, 0) -> (0, 1) -> (1, 1) -> (2, 1) -> (2, 2) ->
(2, 3) -> (3, 3) -> (4, 3) -> (4, 4) -> (4, 5) ->
(5, 5)
Author: Zhang Kaizhou
Date: 2019-3-7 17:34:41
------------------------------------------------*/
#include 
#include 
#define MAXSIZE 1000
#define N 6
int maze[N][N] = {{0, 0, 1, 1, 1, 1},{1, 0, 1, 1, 1, 1},{1, 0, 0, 0, 1, 1},{1,


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部