左边是原始迷宫图,右边将其所有路径进行了标记,发现有3个出口,并且中间带环。
这就是一个多条出路且带环的迷宫图。如何找到它的最短路径呢?
首先对这个迷宫初始化
void MazeInitShortPathWithCycle(Maze* maze)
{
if (maze == NULL)
return;
int map[MAX_ROW][MAX_COL] =\
{
{0,1,0,0,0,0},
{0,1,1,1,1,1},
{1,1,0,1,0,0},
{0,1,1,1,0,0},
{0,0,1,0,0,0},
{0,0,1,0,0,0}
};
size_t i = 0;
for(; i < MAX_ROW; ++i)
{
size_t j = 0;
for(; j < MAX_COL; ++j)
maze->map[i][j] = map[i][j];
}
return;
}
辅助函数的构造:
1.标记规则的改变
void MarkWi