迷宫求解C++

更新时间:2023-11-18 16:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

#include using namespace std; //坐标位置结构体 struct location { };

//方格信息结构体 struct grid {

bool via; //vir为真表示此通道畅通,否则表示当前位置阻塞 int direction;//从此通道走到下一通道的方向,0-3分别代表东南西int x; int y;

北四个方向。 栈 };

//定义迷宫,即迷宫数组 grid maze[10][10]= {

//0 x y 1 2 3 location seat;//通道在迷宫中的位置

//从每个方向退回来后方向值加1,当方向值为4时从path栈中退

4

{{false,0,0,0},{false,0,0,1},{false,0,0,2},{false,0,0,3},{false,0,0,4},{f

alse,0,0,5},{false,0,0,6},{false,0,0,7},{false,0,0,8},{false,0,0,9}},

{{false,0,1,0},{true,

0,1,1},{true,

0,1,2},{false,0,1,3},{true, 0,1,6},{false,0,1,7},{true,

0,1,4},{true, 0,1,8},{false,0,1,9}},

0,1,5},{true,

{{false,0,2,0},{true, 0,2,1},{true, 0,2,2},{false,0,2,3},{true, 0,2,6},{false,0,2,7},{true,

0,2,4},{true, 0,2,8},{false,0,2,9}},

0,2,5},{true,

{{false,0,3,0},{true, 0,3,1},{true, 0,3,2},{true, 0,3,3},{true, 0,3,7},{true,

0,3,4},{false,0,3,5},{false,0,3,6},{true, 0,3,8},{false,0,3,9}},

{{false,0,4,0},{true,

0,4,1},{false,0,4,2},{false,0,4,3},{false,0,4,4},{true, 0,4,6},{true, 0,4,7},{true, 0,4,8},{false,0,4,9}},

{{false,0,5,0},{true,

0,5,1},{true, 0,5,5},{true,

0,5,6},{true,

0,4,5},{true,

0,5,2},{true, 0,5,7},{true,

0,5,3},{false,0,5,4},{true, 0,5,8},{false,0,5,9}},

{{false,0,6,0},{true,

0,6,1},{false,0,6,2},{true, 0,6,3},{true, 0,6,7},{true,

0,6,4},{true, 0,6,8},{false,0,6,9}},

0,6,5},{false,0,6,6},{true,

{{false,0,7,0},{true,

0,7,1},{false,0,7,2},{false,0,7,3},{false,0,7,4},{true, 0,7,5},{false,0,7,6},{false,0,7,7},{true, 0,7,8},{false,0,7,9}},

{{false,0,8,0},{false,0,8,1},{true,

0,8,2},{true,

0,8,3},{true,

0,8,4},{true, 0,8,5},{true, 0,8,6},{true, 0,8,7},{true, 0,8,8},{false,0,8,9}},

{{false,0,9,0},{false,0,9,1},{false,0,9,2},{false,0,9,3},{false,0,9,4},{f

alse,0,9,5},{false,0,9,6},{false,0,9,7},{false,0,9,8},{false,0,9,9}} };

class stack { private:

enum{Max=100}; int top; grid arr[Max];

public:

stack(){top=0;}

friend void dispath(stack & st); int gettop(){return top;}

grid gettopdata(){return arr[top-1];} bool isempty(){return top==0;} bool isfull(){return top==Max;}

bool push(const grid &st) { }

bool pop(grid &st) {

if(isempty()) { } else

cout<<\return false; if(isfull()) { } else { }

arr[top]=st; top++; return true;

cout<<\return false;

};

}

{ }

st=arr[top-1]; top=top-1; return true;

bool is_equal(grid &g1,grid &g2) { }

void dispath(stack & st) {

int number=st.gettop(); if(number==0)

cout<<\

if(g1.seat.x==g2.seat.x && g1.seat.y==g2.seat.y)

return true;

else

return false;

else

本文来源:https://www.bwwdw.com/article/4utv.html

Top