迷宫问题C++(数据结构栈的应用)

问题:实现迷宫程序,要求输入一个迷宫数组,左上角(1,1)坐标处为入口,右下角(M,N)坐标处为出口。“1”代表墙壁,“0”代表通路,如下图所示:
如果迷宫有路,则输出迷宫路径。
(1,1)
(1,2)

如果迷宫 没有路,
则输出No path.

迷宫问题是典型的栈的应用实例,具体算法伪代码如下
完成迷宫算法有一个试探操作,还要记录当前位置
我是自己定义了栈的一个类,如果觉得麻烦,C++为程序员提供了库文件,输入#include就可以调用以下函数
在这里插入图片描述

完整代码

#include <iostream>
using namespace std;
const int M = 5, N = 5;

typedef struct
{
   
    int incX,incY;
} Direction;

typedef struct
{
   
    int x,y;//当前坐标
    int di;//当前方向
} Box;

const char* direct[4] = {
    "right","down","left","up" };

class Stack
{
   
private:
    Box* path;
    int top;
public:
    Stack();
    ~Stack();
    void push(Box temp);
    Box pop();
    bool isEmpty();
    bool isFull();
    void displayPath();
    class Empty {
   };
    class Full {
   };
};
Stack::Stack()
{
   
    top
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值