前言
原题:
https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc?tpId=37&tqId=21266&ru=/exam/oj
一、题目要求
1.输入
输入两个整数,N与M,分别代表二维数组的行数与列数。再输入对应的值,1代表墙壁,0代表可走的路,迷宫只有唯一一条通道可走。
(0,0)为入口
(N - 1, M - 1)为出口
数据范围:2 <= N <= 10,2 <= M<= 10
数组中仅包含0和1
示例:
纵向输出从入口到出口的路径
示例:
二、思路与算法
本题采用深度优先搜索+栈的思路,从入口开始走,每次走过的路标记为2(入栈),若走到某一条不通的路线,则返回到该路线的起点处(把不通的路线出栈),再走没走过的路,直到找到出口为止。
C语言实现栈教程移步下方链接⬇️⬇️⬇️🥺
http://t.csdnimg.cn/8cAkt
三、代码实现
1.创建迷宫
1 | typedef struct path { |
2.寻找迷宫的出口路径
1 | //判断当前路径的坐标是否可走 |
3.输出迷宫的出口路径
1 | void PrintMazeExitPath(stack p){ |
四、完整代码
1 |
|
一开始写在csdn的,现在搬上来凑个数
说些什么吧!