C++,队列问题,急

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:35:39
求解迷宫,我照书上写的代码,跑不通。求高人
#include <stdio.h>
#include <stdlib.h>
#define M 9
#define N 9
#define MaxSize 100
int mg[M+1][N+1]={ //0可走1不可走
{1,1,1,1,1,1,1,1,1,1},
{1,0,0,1,0,0,0,1,0,1},
{1,0,0,1,0,0,0,1,0,1},
{1,0,0,0,0,1,1,0,0,1},
{1,0,1,1,1,0,0,0,0,1},
{1,0,0,1,0,0,0,0,0,1},
{1,0,1,0,0,0,1,0,0,1},
{1,0,1,1,1,0,1,1,0,1},
{1,1,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1}};
typedef struct aaaa{
int i,j;
int pre;
}Qu[MaxSize];
int front=-1,rear=-1;

int printP(int front){ //从队列中输出从起点到终点的路劲
Qu q[MaxSize];
int k=front,j,ns=0;
printf("\n");
do{
j=k;
k=q[k]->pre;
q[j]->pre=-1;
}while(k!=0);
printf("迷宫如下:\n");
k=0;
while(k<MaxSize){
if(q[k]->pre==-1){
ns++;
printf("\t(%d.%d)",q[k]->i,q[k]->j);
if(ns%5==0)print

#include<stdio.h>
#define MaxSize 100
#define M 5
#define N 5
int mg[M+1][N+1] = {
{1,1,1,1,1,1},
{1,0,0,0,1,1},
{1,0,1,0,0,1},
{1,0,0,0,1,1},
{1,1,0,0,0,1},
{1,1,1,1,1,1}
};

struct{
int i;
int j;
int di;
}st[MaxSize],Path[MaxSize];

int top=-1;
int count=1;
int MinLen=MaxSize;

int mgpath(int xi,int yi,int xe,int ye){
int i,j,k,di,find;
top++;
st[top].i = xi;
st[top].j = yi;
st[top].di = -1;
mg[1][1]=-1;
while(top > -1){
i = st[top].i;
j = st[top].j;
di = st[top].di;
if(i == M-1 && j == N-1 ){
printf("第%d条迷宫路径:\n",count++);
for(k = 0;k <= top;k++){
printf("\t(%d,%d)",st[k].i,st[k].j);
if((k+1)%5 == 0)