C/C++迷宫问题求解
以一个M×N的长方阵表示迷宫。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的**通路。
实验目的:
继续熟练掌握栈的特点;灵活应用栈和队列。
具体要求:

(1)以一个M×N的长方阵表示迷宫,1和0分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的**通路,或得出没有通路的结论。(所谓**通路是指在所有的通路中输出步长最短的一条通路。) (2)首先创建一个迷宫,输入格式为:M N,指定迷宫的行数和列数,然后按行输入迷宫的每一行的布局信息(参见输入示例)。求得的通路以三元组(i, j, d)的形式输出(每行输出5组),其中:(i, j)表示迷宫的坐标,d表示走到下一坐标的方向(值为1、2、3、4,分别对应右、下、左、上方向)。迷宫入口坐标(左上角)为(1,1),出口坐标为右下角(M,N),若有通路,则最后输出的坐标三元组格式为(M,N,0)。 (3) 本题目要求可以连续输入多组迷宫数据进行测试,若输入迷宫的行数和列数分别为0,则输入结束。注意输出格式的要求。 (4)提示:用栈和队列都可实现。使用栈从所有可能的通路中寻找最短路径。使用队列可通过广度优先算法直接确定最短路径。 Input 示例输入: 4 5 ———-迷宫的行数和列数 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 4 4 ———-迷宫的行数和列数 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 ———-输入结束标志 Output 若迷宫有通路,则输出迷宫的通路,以每行输出5组的形式控制输出格式;若迷宫没有通路则输出“没有通路”。如上例的输入对应的输出为: (1,1,2)(2,1,2)(3,1,2)(4,1,1)(4,2,1) (4,3,1)(4,4,1)(4,5,0) 没有通路 Sample Input 4 5 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 4 4 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 Sample Output (1,1,2)(2,1,2)(3,1,2)(4,1,1)(4,2,1) (4,3,1)(4,4,1)(4,5,0) 没有通路
源码联系UP主 -> https://space.bilibili.com/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161783.html