利用数据结构栈求解迷宫问题

这段程序借助栈的先进后出特性,采用回溯算法来解决迷宫路径寻找问题,有效地探索了迷宫的所有可能路径。
摘要由CSDN通过智能技术生成

本段程序主要利用数据结构栈的先进后出特点,实现回溯求解迷宫路径问题。

#include<iostream>
#include<stack>
using namespace std;
//坐标类
struct Point
{
	int x;
	int y;
};
//地图类
template<int A>
struct Map
{
	int (*p)[A];
	int row;//行数
	int col;//列数
};
//start起始点, end终止点
template<int A>
bool FindPath(Map<A> & map,Point & start,Point & end)
{
	//先给图的外围加上障碍
	for(int i = 0;i<=map.col;i++)
	{
		map.p[0][i] = map.p[map.row][i] = 1;
	}
	for(int i = 0;i<=map.row;i++)
	{
		map.p[i][0] = map.p[i][map.col] = 1;
	}

	//用于保存路径的栈
	stack<Point> stackpath;
	//用于方向选择的偏移量数组   按照顺时针的方向
	Point offset[4];
	offset[0].x = 0; offset[0].y = 1;//向右
	offset[1].x = 1; offset[1].y = 0;//向下
	offset[2].x = 0; offset[2].y = -1;//向左
	offset[3].x = -1; offset[3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值