入门小学生 2017-03-29 05:26 采纳率: 0%
浏览 966
已结题

迷宫问题,比着书本打出的代码,不可以运行,编译器说卡在了87行。不知道为什么。求帮助

图片说明

报错信息:图片说明#include
#define MaxSize 50
int mg[5][5] ;
typedef struct{
int i;
int j;
int pre;
}ElemType;
typedef struct {
ElemType data[MaxSize];
int front,rear;
}SqQueue;
void InitQueue(SqQueue *&q);
void DetroyQueue(SqQueue *&q);
bool QueueEmpty(SqQueue *q);
bool QueueFull(SqQueue *q);
bool EnterQueue(SqQueue *&q,ElemType e);
bool DepartQueue(SqQueue *&q,ElemType &e);
bool mgpath1(int xi,int yi,int xe,int ye);
void print(SqQueue *qu,int front);
using namespace std;
int main()
{
for(int i=0;i<5;i++)

    for(int j=0;j<5;j++)
        cin>>mg[i][j];
mgpath1(0,0,4,4);
return 0;

}
void print(SqQueue *qu,int front)
{
int k=front,j;
cout< do
{
j=k;
k=qu->data[k].pre;
qu->data[j].pre=-1;
}while(k!=0);
k=0;
while(k {
if(qu->data[k].pre==-1)
cout<<"("<data[k].i<<", "<data[k].j<<")"<<endl;;
k++;
}
}
bool mgpath1(int xi,int yi,int xe,int ye)
{
int i,j,find=0,di;
ElemType e;
SqQueue *qu;
InitQueue(qu);
e.i=xi;
e.j=yi;
e.pre=-1;
EnterQueue(qu,e);
mg[xi][yi]=-1;
while(!QueueEmpty(qu)&&!find)
{
DepartQueue(qu,e);
i=e.i;
j=e.j;
if(i==xe&&j==ye)
{

        find=1;
        print(qu,qu->front);
        return true;
    }
    for(di=0;di<4;di++)
    {
        switch(di)
        {
            case 0: i--;break;
            case 1: j++;break;
            case 2: i++;break;
            case 3: j--;break;
        }
        if(mg[i][j]==0)
        {
            e.i=i;
            e.j=j;
            e.pre=qu->front;
            EnterQueue(qu,e);
            mg[i][j]= -1;
        }
    }
}
return false; 

}
void InitQueue(SqQueue *&q)
{
q=new SqQueue;
q->front=q->rear=-1;
}
void DetroyQueue(SqQueue *&q)
{
delete q;
}
bool QueueEmpty(SqQueue *q)
{
return (q->front==q->rear);
}
bool QueueFull(SqQueue *q)
{
return (q->rear==MaxSize-1);

}
bool EnterQueue(SqQueue *&q,ElemType e)
{
if(QueueFull(q))
return false;
q->rear++;
q->data[q->rear]=e;
return true;
}
bool DepartQueue(SqQueue *&q,ElemType &e)
{
if(QueueEmpty(q))
return false;
q->front++;
e=q->data[q->front];
return true;
}

  • 写回答

2条回答 默认 最新

  • 白萝卜。 2017-03-29 05:40
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器