实习1 栈和队列及其应用
1.以二维數组maze[m][n]表示迷宫再为周围加一圈障碍。数组以元素值为0表示通路1表示障碍。
2.用户以文件的形式输入迷宫的数据:文件中第一行的数据為迷宫的行数m和列数n;从第二行到第m+1行(每行n个数)为迷宫值
3.迷宫的入口位置默认为(1,1)出口位置默认为(m,n)
4.程序执行的命令包括:
(1)创建迷宫;(2)求解迷宫;(3)输出迷宫的解;(4)结束。
为了实现程序上述功能应以队列为存储结构。
操作结果:求解迷宫并输出一条通路。
2. 本程序包含三个模块:
(1)构建迷宫及主程序模块;
(3)执行迷宫求解模块;
1.元素类型结点类型和指针类型:
(1)构建迷宫及主程序模块:
n=b+2; //在周围添加一圈障碍后的行数和列数
(2)执行迷宫求解模块:
(1)设计过程中对递归结束的条件感到疑惑,经过考虑设立了一个计数器c,解决问题
(2)程序采用c++中queue函数,减少了c语言中构建队列的冗长代码方便快捷。
(3)这道题第一眼看覺得仅仅是个递归的简单应用但实际操作还是有很多需要考虑的地方,比如如何终止递归防止其他函数再次执行函数。
(1)本程序的運行环境为VS2010
(2)进入演示程序后即直接输出结果。