软件综合实习
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【出栈函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
T Stack::Pop() //使栈顶元素出栈 {
T Temp; LinkNode *P; P=top;
top=top->next; //链栈【头取法】,把top所指data赋给Temp
Temp=P->data; delete P; return Temp; }
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【取栈顶元素函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
T Stack::GetPop() //取出栈顶元素 {
return top->data; }
信息科学与工程学院 - 25- 网络工程11-1班
软件综合实习
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【清空栈函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
void Stack::Clear() //把栈清空 {
top=NULL; }
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【判断栈空函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
bool Stack::empty() //判断栈是否为空,如果为空则返回1,否则返回0 {
if(top==NULL)
return 1;
else }
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【函数声名】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
return 0;
信息科学与工程学院 - 26- 网络工程11-1班
软件综合实习
int move[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; //定义当前位置移动的4个方向.【分别先向东、南、西、北】
bool Mazepath(string **maze,int m,int n); //寻找迷宫maze中从(0,0)到(m,n)的路径,
如果到则返回true,否则返回false
void PrintPath(Stack p,int m,int n,string **maze); //输出迷宫的路径
void Restore(string **maze,int m,int n); //恢复迷宫
string ** GetMaze(int &m,int &n); //获取迷宫,返回存取迷宫的二维指针
//╞╪╪╪╪╪╪╪╪╪╪╪╪╪╪【主函数】╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╪╡
int main() {
int m=0,n=0; //定义迷宫的长和宽 string **maze; //定义二维指针存取迷宫 printf(\◢■■◣◢■■◣ ◢■ ◢■■◣ ◢■■◣ ◢■■◣ ◢■ \\n\
int a1,b1;
int c1,d1;
信息科学与工程学院 - 27- 网络工程11-1班
软件综合实习
printf(\ ■■ ■ ■ ■ ■ ■ ■ \\n\
printf(\◢■■◤■ ■ ■ ■■■■ 年 ■■■■ 月 ◢■■◤ ■ 号 \\n\
printf(\■ ■ ■ ■ ■ ■ ■ ■ ■ \\n\
printf(\◥■■■◥■■◤◥■■■◤◥■■◤ ◥■■◤ ◥■■■◥■■■◤ \\n\
printf(\
printf(\━━━━━━━━━【作者】━━━━━━━━━━━━━━ \\n\
printf(\┃ ┃ \\n\
printf(\┃ ● 何天从 ┃ \\n\
printf(\┃ ● 网络工程专业 11-1班 ┃ \\n\
printf(\┃ ● 学号:3110757101 ┃ \\n\
printf(\┃ ● 信息科学与工程学院 ┃ \\n\
printf(\┃ ● 桂林理工大学 ┃ \\n\
printf(\┃ ┃ \\n\
printf(\━━━━━━━━━━━━━━━━━━━━━━━━━━━ \\n\
printf(\
信息科学与工程学院 - 28- 网络工程11-1班
软件综合实习
printf(\┣━━━━━━━━━【迷宫路径探索】━━━━━━━━━┫ \\n\
printf(\┃ ┃ \\n\
printf(\┃ ⑴〖输入迷宫路径〗 ┃ \\n\
printf(\┃ ⑵〖清空屏幕〗 ┃ \\n\
printf(\┃ ⑶〖结束探索〗 ┃ \\n\
printf(\┃ ┃ \\n\
printf(\┣━━━━━━━━━━━━━━━━━━━━━━━━━━┫ \\n\
printf(\
while(1) {
int j;
printf(\【请选择】操作:\scanf(\switch(j) {
case 1:
{
maze=GetMaze(m,n); //调用GetMaze(int &m,int &n)函数,
得到迷宫
信息科学与工程学院 - 29- 网络工程11-1班