这一次我们来学习下迷宫的的路径问题,用栈的链表形式实现。其实这个是属于一本书上的案例,看完了之后,按照自己的理解尝试做了下(ps:其实绝大大部分都是书上的代码)注释 。如果你发现了其中的错误,欢迎指出。
下面来说下思路:首先定义一个结构体:
struct TestStack
{
}stack[50];//用来保存走到哪一步,进行回溯
I和j用来保存当前元素的下表,通过进栈和进栈来实现地图的回溯,stack数组用来表示步数的存储,通过stack[top].i可以访问存在在栈顶的x,stack[top].j可以访问存在栈顶的y,通过x,y坐标就可以通过map数组访问数组值,如果路可以走,则进栈。dir是用来保存存储的方向,可以用来当这次的搜索路不通时,通过实现dir++则 可以搜索另外一个方向。
好了,下面就是全部代码:
// 迷宫问题(栈).cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
struct TestStack
{