上一篇我们讲了求解迷宫是否有出路的问题,这篇我们在迷宫有多条路的情况下怎么求出最短路径
我们的思路是建立两个栈,一个当前路径栈,一个最短路径栈,最开始的时候最短路径栈是空,我们把一条迷宫路径的所有节点都入栈,然后与最短路经比较,如果小于那么,就将当前路径的栈赋值给最短路径栈,其中包括重新申请大小等。
下面是具体代码实现
#include "maze.h"
#include "seqstack.h"
#include "seqstack.c"
int map[MAX_ROW][MAX_COL] = {
{
0,1,0,0,0,0},
{
0,1,1,1,0,0},
{
0,1,0,1,1,1},
{
1,1,1,0,0,0},
{
0,0,1,0,0,0},
{
0,0,1,0,0,0}
};//新的迷宫里面有三条路
void mazeinit(maze *maze)
{
if(maze =