迷宫问题,比着书本打出的代码,不可以运行,编译器说卡在了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;
}

http://blog.csdn.net/nuaazdh/article/details/7051278
你看看这个迷宫。

把报错信息贴出来。。。。。。。。。。