内容发布更新时间 : 2025/1/7 6:15:31星期一 下面是文章的全部内容请认真阅读。
实验报告
课程名:数据结构(C语言版) 实验名:迷宫问题I 姓名: 班级: 学号:
撰写时间:2014/10/05
一 实验目的与要求 1. 了解栈的应用
2. 利用栈在迷宫中找到一条路
二 实验内容
? 一个迷宫如图1所示, 是由若干个方格构成的一个矩形, 其中有唯一的 一个入口(用标示), 有唯一的一个出口(用△标示). 图中深色的方格无法到达, 浅色的方格都是可以到达的. 每一次只能从当前方格前进到与当前方格有公共边的方格中(因此前进方向最多有四个).
? 本次实验的迷宫问题要求求解一条从入口到出口的路.
图1:迷宫
三 实验结果与分析 程序:
#include
/* run this program using the console pauser or add your own getch, system(\
int Maze(int ox,int oy,int ex,int ey,int rnum,int cnum,int a[rnum][cnum]){
int b[rnum][cnum]; int i,j,Znum=0;
for(i=0;i } } int Sx[Znum+1], Sy[Znum+1], p=0; for(i=0;i int dx[4] = {0,1,0,-1}; int dy[4] = {-1,0,1,0}; Sx[p]=ox; Sy[p]=oy; b[ox][oy]=2; p=1; int brand = -1; //------------------------------------- while(p>0){ if(Sx[p-1]==ex && Sy[p-1]==ey){ brand = 1; break; } else{ int tb = -1; for(i=1;i<4;++i){ int tx = Sx[p-1]+dx[i]; int ty = Sy[p-1]+dy[i]; if(b[tx][ty]==0){ tb = 1; Sx[p]=tx; Sy[p]=ty; b[tx][ty]=2; p=p+1; } } if(tb<0){ b[Sx[p-1]][Sy[p-1]]=-1; p=p-1; } } } if(brand>0){ while(p>0){ printf(\ p=p-1; }