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/
到此这篇c语言 环形队列(环形队列c++实现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/52605.html