迷宫路径搜索问题(栈的链表实现)

本文介绍了使用栈的链表结构解决迷宫路径搜索问题,通过自定义结构体存储路径信息,并利用栈进行回溯。代码示例展示了如何在C++中实现这一算法,通过改变方向搜索可行路径,直到找到终点或确定无解。
摘要由CSDN通过智能技术生成

这一次我们来学习下迷宫的的路径问题,用栈的链表形式实现。其实这个是属于一本书上的案例,看完了之后,按照自己的理解尝试做了下(ps:其实绝大大部分都是书上的代码)注释 。如果你发现了其中的错误,欢迎指出。

下面来说下思路:首先定义一个结构体:

struct TestStack

{

         int i;

         int j;

         int dir;//用来控制当前方向的走向,1时向左;2时向右;3时向上;4时向下;

}stack[50];//用来保存走到哪一步,进行回溯

 

Ij用来保存当前元素的下表,通过进栈和进栈来实现地图的回溯,stack数组用来表示步数的存储,通过stack[top].i可以访问存在在栈顶的xstack[top].j可以访问存在栈顶的y,通过x,y坐标就可以通过map数组访问数组值,如果路可以走,则进栈。dir是用来保存存储的方向,可以用来当这次的搜索路不通时,通过实现dir++ 可以搜索另外一个方向。

好了,下面就是全部代码:

// 迷宫问题().cpp : 定义控制台应用程序的入口点。

//

 

#include "stdafx.h"

 

struct TestStack

{

         int i;

         int j;

         int dir;//

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值