迷宫求解思路(求出所有的从入口到出口的路径):
do
{
若当前位置可通
则
{
则将当前位置插入栈顶;
留下足迹;
若该位置是出口
则
{输出该成功出逃的路径;
将出口从栈中删除同时擦除足迹;
将出口前一个通道块也从栈中删除同时擦除足迹;
顺时针向当前位置的下一个方向探索,进行下一轮循环;}
否则切换当前位置的东邻方向为新的当前位置进行探索;
}
否则
{
若栈不空
{
则从栈中删除该元素并擦除足迹;
若栈不空且刚删除的元素已经顺时针查找了4个方向均不通
{ 进行不能通过的标记;
接着删除栈顶的下一个元素并擦除足迹;}
否则
{将刚才从栈中删除的元素将其查找方向顺时针加1之后重新入栈并留下足迹;
转向当前位置的下一个方向进行探索}
}
}
do
{
若当前位置可通
则
{
则将当前位置插入栈顶;
留下足迹;
若该位置是出口
则
{输出该成功出逃的路径;
将出口从栈中删除同时擦除足迹;
将出口前一个通道块也从栈中删除同时擦除足迹;
顺时针向当前位置的下一个方向探索,进行下一轮循环;}
否则切换当前位置的东邻方向为新的当前位置进行探索;
}
否则
{
若栈不空
{
则从栈中删除该元素并擦除足迹;
若栈不空且刚删除的元素已经顺时针查找了4个方向均不通
{ 进行不能通过的标记;
接着删除栈顶的下一个元素并擦除足迹;}
否则
{将刚才从栈中删除的元素将其查找方向顺时针加1之后重新入栈并留下足迹;
转向当前位置的下一个方向进行探索}
}
}
}while(栈不空)
#include<ios