聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 用队列用队列实现迷宫问题

用队列用队列实现迷宫问题

时间:2010-04-05 17:03:07    下载该word文档

用队列实现迷宫问题:

以下为代码(结果为输出路径)

#include

using namespace std;

typedef struct{

int x;

int y;

int cur;

}link;

void print(link q[200],int front){

cout<<"所经过的路径为:"<

while(front!=0){

cout<

front=q[front].cur;

}//while

}//print

void find(link q[200],int p[10][10],int p1[5],int p2[5]){

int i,j,x,y,k,front,rear,find=1;

x=q[0].x=1;

y=q[0].y=1;

q[0].cur=0;

front=rear=1;

while(find==1){

for(k=1;k<=4;k++){

i=x+p1[k];

j=y+p2[k];

if(p[i][j]==0){

q[rear].x=x;

q[rear].y=y;

q[rear].cur=rear+1;

p[x][y]=-1;

x=i;y=j;

rear++;

find=1;break;}

if(k==4&&p[i][j]!=0){

i=i-p1[k];

j=j-p2[k];

p[i][j]=-1;

x=q[rear-1].x;

y=q[rear-1].y;

rear--;

find=1;break;}

if(x==8&&y==8){

q[rear].x=x;

q[rear].y=y;

q[rear].cur=0;

print(q,front);

find=0;break;}

}//for

if(rear==0)

{cout<<"没有一条路可以到达目的地"<

find=0;}

}//while

}

int main(int argc, char* argv[]){

link q[200];

int p1[5];

int p2[5];

p1[1]=0;p1[2]=1;p1[3]=0;p1[4]=-1;p2[1]=1;p2[2]=0;p2[3]=-1;p2[4]=0;

int p[10][10]={

1,1,1,1,1,1,1,1,1,1,

1,0,0,1,0,0,0,0,0,1,

1,0,0,0,1,1,1,1,0,1,

1,1,0,0,0,1,1,1,0,1,

1,0,1,0,0,0,1,1,0,1,

1,0,1,1,0,0,0,1,0,1,

1,0,1,0,1,0,0,0,1,1,

1,0,1,1,1,1,0,0,0,1,

1,0,0,0,0,0,0,0,0,1,

1,1,1,1,1,1,1,1,1,1};

find(q,p,p1,p2);

printf("Hello World!\n");

return 0;

}//main

免费下载 Word文档免费下载: 用队列用队列实现迷宫问题

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服