全文预览

迷宫问题课程设计报告

上传者:梦&殇 |  格式:doc  |  页数:17 |  大小:0KB

文档介绍
1}, 从maze[0][0] 开始访问。如果入口处即为障碍,则此迷宫无解,返回 0,程序结束。否则访问入口节点, 将入口节点标记为访问过 maze[p.row][p.col]=2, 调用函数 enqueue(p) 将该节点入队。判断队列是否为空,当队列不为空时,则运行以下操作: {调用 dequeue() 函数,将队头元素返回给 p, 如果 p.row==m-1 且p.col==n-1, 即到达出口节点,即找到了路径,结束如果 p.col+1<n 且maze[p.row][p.col+1]==0, 说明未到迷宫右边界,且其右方有通路,则visit(p.row,p.col+1,maze), 将右边节点入队标记已访问如果 p.row+1<m 且maze[p.row+1][p.col]==0, 说明未到迷宫下边界,且其下方有通路,则visit(p.row+1,p.col,maze), 将下方节点入队标记已访问如果 p.col-1>0 且maze[p.row][p.col-1]==0, 说明未到迷宫左边界,且其左方有通路,则visit(p.row,p.col-1,maze), 将左方节点入队标记已访问如果 p.row-1>0 且maze[p.row-1][p.col]==0, 说明未到迷宫上边界,且其上方有通路,则visit(p.row,p.col+1,maze), 将上方节点入队标记已访问}访问到出口(找到路径)即p.row==m- 1且p.col==n-1, 则逆序将路径标记为3 即maze[p.row][p.col]==3; while(p.predecessor!=-1) {p=queue[p.predecessor]; maze[p.row][p.col]==3;} 最后将路径图形打印出来。 3.菜单选择 while( cycle!=(-1) )☆手动生成迷宫请按: 1

收藏

分享

举报
下载此文档