迷宫问题

源码 : github.com/drdeng/maze

//////////////////////////////////////////////
// Deng Yong and HanMo Cheng
// date:2015 12 14
//////////////////////////////////////////////////
#ifndef STACK_H
#define STACK_H

//定义坐标
typedef struct coordinate
{
int row;//行
int column;//列
int direction;//方向
}coordinate;
//移动方向


//Move move[4]={{0,1},{1,0},{0,-1},{-1,0}};
//结构体链表
typedef struct LinkNode
{
coordinate data;
//LinkNode *next;
struct LinkNode *next;//
}
LinkNode , *Node;

class stack
{

private:
LinkNode *top;
public:
stack()
{
//top=NULL;
top=nullptr;//c++ 11 using nullptr not NULL
}
// bool initialStack(LinkNode * &top);//初始化栈
void pushStack(coordinate x);//入栈
void Clear();//清空栈
coordinate GetPop(/*LinkNode *&top, coordinate &data*/);
coordinate Pop();
bool Empty();


private:

};

#endif

 

//maze.h

#ifndef MAZE_H
#define MAZE_H
#include <iostream>
#include "stack.h"
#include <map>
#include<string>
using namespace std;

class stack;

class maze {

public:
maze()=default;
bool find( );//寻找迷宫解
int ** InPut_maze();//生成迷宫
int **get_maze();//读取迷宫数据
void before_direct_readmaze();//在直接调用这个函数之前
// void OutPut_maze(stack p);//输出迷宫的解
void PrintPath(stack p);//以坐标形式输出迷宫
void PrintPath2(stack p);


private:
int M_Row;//
int M_Column;
int **M_maze;//迷宫二维数组
struct Move
{
int row;
int column;
};
Move move[4]={{0,1},{1,0},{0,-1},{-1,0}};


}
;
#endif

 

你可能感兴趣的:(迷宫问题)