栈和队列_迷宫问题_栈和回朔法
来源:互联网 发布:浴霸哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/08 06:50
#迷宫问题---栈和队列#继承ValueErrorclass StackUnderflow(ValueError): pass#定义一个栈class SStack(): def __init__(self): self._elems = [] def is_empty(self): return self._elems == [] def top(self): if self._elems == []:raise StackUnderflow('in SStack.top()') return self._elems[-1] def push(self,elem): self._elems.append(elem) def pop(self): if self._elems==[]:raise StackUnderflow('in SStack.top()') return self._elems.pop()#定义mazeline_0 = [1,1,1,1,1,1,1]line_1 = [1,1,0,1,0,1,1]line_2 = [1,1,0,1,0,1,1]line_3 = [1,1,0,0,0,1,1]line_4 = [1,1,0,1,0,0,1]line_5 = [1,1,0,1,1,1,1]line_6 = [1,1,1,1,1,1,1]maze=[line_1,line_1,line_2,line_3,line_4,line_5,line_6]#方向dirs = [(0,1),(1,0),(0,-1),(-1,0)]def mark(maze,pos): #定义到过了=2 maze是迷 maze[pos[0]][pos[1]] = 2def passable (maze,pos): return maze[pos[0]][pos[1]] == 0#赞def maze_solver(maze,start,end): if start == end: print (start) return st =[] mark(maze,start) st.append((start,0)) while not st==[]: pos,nxt = st.pop() for i in range(nxt,4): nextp=(pos[0]+dirs[i][0],pos[1]+dirs[i][1]) print (nextp) if nextp == end: print (st) return if passable(maze,nextp): st.append((pos,i+1)) mark(maze,nextp) st.append((nextp,0)) breakmaze_solver(maze,[5,2],(4,5))
0 0
- 栈和队列_迷宫问题_栈和回朔法
- 栈和队列_迷宫问题_队列
- 栈和队列_迷宫问题_递归
- SDJZU_新生_栈和队列_士兵队列训练问题
- 数据结构:栈和队列-迷宫问题求解
- 解决迷宫问题, 栈和队列
- 用栈和队列求解迷宫问题
- 栈和队列的应用:迷宫问题
- SDJZU_新生_栈和队列_愚人节的礼物
- 数据结构_栈、队列和树(Java)
- 数据结构基础_栈和队列
- 数据结构03_栈、队列和数组
- JACK_C#_集合之栈和队列
- 18_栈和队列---两个栈表示一个队列
- 19_栈和队列---两个队列表示一个栈
- 3.4 表、栈和队列_队列ADT
- 使用栈和队列求解迷宫问题(标准库)
- 栈和队列的底层实现及迷宫问题
- 用C++画表格
- 递归法之最长回文子序列(java)
- 【MySQL 5.7 Reference Manual】15.4.7 Doublewrite Buffer(双写缓冲)
- 基于opencv源程序的滑动条实现阈值变换
- day11 多线程
- 栈和队列_迷宫问题_栈和回朔法
- 《黑客与画家》系列读书笔记二 “书呆子”
- 【MySQL 5.7 Reference Manual】15.4.8 Undo Logs(Undo日志)
- Android自定义控件之《自定义TextView(支持显示图片)》
- HDU 2426 Interesting Housing Problem(点集不同最大二分图)
- 浅谈我与蚂蚁课堂五个月的创业经历
- Bootstrap3兼容IE8
- A plus B(这题有点坑)
- 【MySQL 5.7 Reference Manual】15.4.9 File-Per-Table Tablespaces(独立表空间)