// Datastructure2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
using namespace std;
static int w;
static int h;
static int column = 0;
static int row = 0;
static int **A; //声明二级指针A,指向一个指针数组
//***************************************************************************
//顺序栈实现
//***************************************************************************
template<class T>
class ArrayStack
{
private:
int size;//栈的大小
int tos;//栈顶索引
T*contain;
public:
ArrayStack():size(0),tos(-1),contain(NULL){}
ArrayStack(int maxsize);
~ArrayStack();
void Push(const T&element);
T& GetTop();
T&Pop();
bool IsEmpty();
void MakeEmpty();
};
template<class T>
ArrayStack<T>::ArrayStack(int maxsize)
{
size=maxsize;
tos=-1;
contain=new T[maxsize];
}
template<class T>
ArrayStack<T>::~ArrayStack()
{
delete contain;
tos=-1;
size=0;
}
template<class T>
void ArrayStack<T>::Push(const T&element)
{
if(tos==size-1)
{
//cout<<"栈已经满"<<endl;
return;
}
else
{
tos++;
contain[tos]=element;
}
}
template<class T>
T& ArrayStack<T>::GetTop()
{
return contain[tos];
}
template<class T>
T& ArrayStack<T>::Pop()
{
if(tos==-1)
{
int i=0;
//cout<<"栈为空"<<endl;
return contain[tos--];
}
else
{
return contain[tos--];
}
}
template<class T>
bool ArrayStack<T>::IsEmpty()
{
if(tos==-1)
return true;
else
return false;
}
template<class T>
void ArrayStack<T>::MakeEmpty()
{
delete contain;
tos=-1;
size=0;
}
bool Right(int column,int row){
if (column + 1 < w) {
if (A[column + 1][row] == 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
bool Left(int column,int row){
if (column - 1 >= 0) {
if (A[column - 1][row] == 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
bool Down(int column,int row){
if (row + 1 < h) {
if (A[column][row + 1] == 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
bool Up(int column,int row){
if (row - 1 >= 0) {
if (A[column][row - 1] == 0) {
return true;
} else {
return false;
}
} else {
return false;
}
}
bool isPassway(){
ArrayStack<int>*point=new ArrayStack<int>(w*h);
point->Push(colu
迷宫问题,二维数组模拟迷宫;
最新推荐文章于 2023-04-14 15:40:53 发布