迷宫问题通常是一个简单路径的问题,采用枚举法找到所有出口
准备:
①构造一个box类储存迷宫方块。
class box:
def __init__(self,i1,j1,di1):
self.i = i1
self.j = j1
self.di = di1
②构建线性栈。
class SqStack:
def __init__(self):
self.data = []
def empty(self):
if len(self.data) == 0:
return True
return False
def push(self,e):
self.data.append(e)
def pop(self):
assert not self.empty()
return self.data.pop()
def gettop(self):
assert not self.empty()
return self.data[-1]
st = SqStack()
算法流程
①取栈顶方块(若栈顶方块为出口,输出栈中的所有方块为一条路径)。
②若栈顶方块不是出口取栈顶方块的下一个方位即 i = b . i + d x [ d i ] i = b.i + dx[di] i