📄 migongzuiduanlujing.cpp
字号:
//搜索迷宫的最短路径.cpp
#include<iostream.h>
int g[8][10]={{1,1,1,1,1,1,1,1,1,1},{1,0,1,1,1,0,1,1,1,1},
{1,1,0,1,0,1,1,1,1,1},{1,0,1,0,0,0,0,0,1,1},
{1,0,1,1,1,0,1,1,1,1}, {1,1,0,0,1,1,0,0,0,1},
{1,0,1,1,0,0,1,1,0,1},{1,1,1,1,1,1,1,1,1,1}};
int e[8][2]={{1,0},{1,1},{0,1},{-1,1},
{-1,0},{-1,-1},{0,-1},{1,-1}};
struct{short x,y,p;}Q[48];//队列
short x,y,f=0,r=0;
void Path(short a,short b,short c,short d){
if(!g[c][d])//出口入队
g[c][d]=1, Q[r].x=c, Q[r].y=d, Q[r++].p=-1;
for(;f<r;f++)
for(int i=0;i<8;i++)
if(x=Q[f].x-e[i][1],y=Q[f].y-e[i][0],!g[x][y])
if(g[x][y]=1,Q[r].x=x,Q[r].y=y,Q[r++].p=f,x==a&&y==b)
return;//邻接通道入队并判断到入口否
}
void main(){
Path(1,1,6,8);
if(f==r--)return;
while(r>-1){
cout<<"("<<Q[r].x<<","<<Q[r].y<<")\n";
r=Q[r].p;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -