資源簡介
給出一個迷宮 2維數組 求解迷宮的最短路徑問題
例如
int mg[10][10]=
{
{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,0,1,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},
};
代碼片段和文件信息
#include
using?namespace?std;
#define?MaxSize?50
int?mg[10][10]=
{???
{1111111111}
{1001000101}
{1001000101}
{1000011001}
{1011100001}
{1000100001}
{1010001001}
{1011101101}
{1100000001}
{1111111111}
};
struct?Box
{
int?ijpre;
};
struct?QuType
{
Box?data[MaxSize];
int?frontrear;
};
void?print(QuType?quint?front)
{
int?k=frontjns=0;
do????????????//反向找到最短的路徑,將該路徑上的方塊的pre成員設置成?-1
{
j?=?k;
k?=?qu.data[k].pre;
qu.data[j].pre?=?-1;
}while(k!=0);
cout<<“迷宮路徑如下:“< k=0;
while(k {
if(qu.data[k].pre==-1)
{
ns++;
cout<<“(“< if(ns%5?==?0)
{
cout< }
}
k++;
}
cout< }
bool?mgpath(int?xiint?yiint?xeint?ye)
{
int?ijdi;??????????????//定義下標
bool?find=0;
QuType?qu;??????????????????????//定義數據類型為QuType?的?qu
qu.front=qu.rear=-1;????????????//初始化隊頭指針和隊尾指針
qu.rear++;??????????????????????
qu.data[qu.rear].i?=?xi;????????//把入口?坐標賦給?順序隊列
qu.data[qu.rear].j?=?yi;
qu.data[q
- 上一篇:MFC簡單mp3播放器
- 下一篇:數據挖掘中的Apriori算法(C語言版)源代碼
評論
共有 條評論