(数据结构)用C++解决迷宫问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:01:49
迷宫时一些互相连通的交叉路口的集合,给定一个迷宫入口,一个迷宫出口,当从入口到出口存在通路时输出其中的一条通路,当从入口到出口不存在通路时输出无通路存在。
要求
随机产生一个mXn的迷宫,0和1分别表示迷宫中的通路和障碍。存在回路时能记住已经走过的路口,不重复已经走过的路口。

用纯C写成的.关系迷宫的产生自己写一个函数吧.

#include <stdio.h>
#include <stdlib.h>

int a[6][10]={ {0,1,1,1,1,1,1,1,1,1},
{0,1,0,0,1,0,0,0,0,1},
{0,0,0,1,1,0,0,1,0,1},
{0,1,1,0,0,0,1,1,0,1},
{0,0,0,0,1,0,0,0,0,1},
{1,1,1,1,1,1,1,1,0,0}
};

int b[200],c[200];
int step=0,method=0;

int walk(int x,int y);
void out(void);

void main()
{
int i;

for(i=0;i<200;++i)
b[i]=c[i]=-1;

walk(0,0);

printf("\nThere are %d methods.",method);
printf("\n");
}

void out(void)
{
int i;

printf("\nThe NO.%d method:\n",method+1);

for(