java 栈如何走迷宫寻路_用栈实现迷宫游戏寻路

标签:栈   迷宫

在我们学习数据结构的时候都曾经见过迷宫游戏,迷宫游戏的实现其实并不难,但是,我们在实现每一个算法的时候都应该想一想这个问题的每一个解。最近,博主已经开始重温数据结构啦,记得我们以前学习这里的时候,老师会用队列来实现迷宫最优解的寻找,氮素呢,博主就是这么可爱,博主就是想试试用栈来找一下。

在实现之前让我们先来复习一下栈的特点:first in last out

对于栈这种数据结构我们只能在栈顶对其操作,根据实际情况可将其实现成链式或者顺序结构。但是一般情况下我们都会实现成顺序结构,因为栈的特点导致了顺序结构管理方便,并且CPU缓存利用率更高。下面我们来简单的讲解一下迷宫小游戏

为了避免用户操作的不便性,我们选择将迷宫提前写好放在一个叫做"Maze.h"的文件中

2954e5db0e40cc74f2a91294e561d6d3.png

*第一行的两个数字是迷宫的行和列

我们解决迷宫寻路问题的基本思想是回溯。回溯是什么意思呢? 就是说,找不到就回退的思想。今天我们的程序要解决的问题是寻找最优解,所以,迷宫的每一条路我们都要去走一遍,这样,我们才能找到最短的那条路。

我们先来看一下程序是怎么写的(如果喷,请轻点6f436cbc573d712a149b8f7392f5482a.gif)#define _CRT_SECURE_NO_WARNINGS 1

#pragma once

#include

#include

#include

#include

using namespace std;

struct Pos

{

size_t _x;

size_t _y;

Pos(size_t x, size_t y) :_x(x), _y(y)

{}

};

sta

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值