- 论坛徽章:
- 0
|
startstate = problem.getStartState() # 获取最初状态
stack = util.Stack() # stack 是一个堆栈
visited = {}
stack.push(startstate)
"""
DFS of Graph
"""
if problem.isGoalState(startstate) == False:
visited[startstate] = True # 访问标志
fringe = problem.getSuccessors(startstate) # 获取后续状态
#print fringe, "\n"
while fringe:
f = fringe[0]
fringe.remove(fringe[0]) # remove-first
if problem.isGoalState(f): # 判断是否目标节点
break
stack.push(f)
if f not in visited:
visited[f] = True
expandf = problem.getSuccessors(f)
if expandf == []:
stack.pop()
fringe = expandf + fringe # 加入状态集
请问这样为什么有问题? |
|