用顺序队列方法解决迷宫问题
发布时间
阅读量:
阅读量
简要概括:队头沿着队尾所经过的路径移动(即队尾入队、队头出队),而队尾则扫描队头附近的路径并将其加入队列。显然,若存在可通行的路径,则队尾附近的点至少会有一个被加入队列,这意味着队头无法追上队尾(即队列不会为空);若追上则表明已无路可走。每个点除了记录坐标外,还通过pre字段保存其在队列中的前一个点的索引。
对于队头而言,其作用是沿着队尾所走过的路径依次指向队列中的各个点。
而对队尾来说,其职责是探测当前指向点周围所有可通行的路径,并将这些可通行的点全部加入到队列中。
对头的功能在于确保所有入列点周围的区域都会被完整扫描。
而对尾的任务则是将所有可通行的点纳入到列表中。
两者相互配合,能够实现对所有可达区域的全面扫描。
在代码实现中,####部分表示的是对头指向一个需要扫描周围区域的点,****部分则代表对尾负责扫描周围环境并将可行的点添加至列表中。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
bool magpath_Qu(int xi, int yi, int xe, int ye)
{
int i, j, di, find = 0;
int t;
Box_qu q;//用来
全部评论 (0)
还没有任何评论哟~
