作家
登录

Python算法实战系列:栈

作者: 来源: 2017-05-26 14:04:49 阅读 我要评论

  •  
  • def path(maze, start, end): 
  •  
  •     ""
  •  
  •     :param maze: 迷宫 
  •  
  •     :param start: 肇端点 
  •  
  •     :param end: 停止点 
  •  
  •     :return: 行走的每个点 
  •  
  •     ""
  •  
  •     i, j = start  # 分化肇端点的坐标 
  •  
  •     ei, ej = end  # 分化停止点的左边 
  •  
  •     stack = [(i, j)]  # 创建一个栈,并让老鼠站到肇端点的地位 
  •  
  •     maze[i][j] = 1  # 走过的路置为1 
  •  
  •     while stack:  # 栈不为空的时刻持续走,不然退出 
  •  
  •         i, j = stack[-1]  # 获取当前老鼠所站的地位点 
  •  
  •         if (i, j) == (ei, ej): break  # 如不雅老鼠找到了出口 
  •  
  •         for di, dj in [(0, -1), (0, 1), (-1, 0), (1, 0)]:  # 阁下高低 
  •  
  •             if maze[i + di][j + dj] == 0:  # 如不雅当前点可走 
  •  
  •                 maze[i + di][j + dj] = 1  # 把当前点置为1 
  •  
  •                 stack.append((i + di, j + dj))  # 把当前的地位添加到栈琅绫擎 
  •  
  •                 break 
  •  
  •         else:  # 如不雅所有的点都弗成走 
  •  
  •             stack.pop()  # 退回上一步 
  •  
  •     return stack  # 如不雅迷宫不克不及走则返回空栈 
  •  
  • Maze = initMaze()  # 初始化迷宫 
  •  
  • result = path(maze=Maze, start=(1, 1), end=(5, 5))  # 老鼠开端走迷宫 
  •  
  • print(result) 
  •  
  • # [(1, 1), (1, 2), (2, 2), (3, 2), (3, 1), (4, 1), (5, 1), (5, 2), (5, 3), (4, 3), (4, 4), (4, 5), (5, 5)]  
  • 后缀表达式求值

    标题


      推荐阅读

      “互联网+”让出租车更智慧

    走进淮北市运输治理处信息批示中间,一幅由6块液晶显示屏构成的监控屏幕映入眼帘,经由过程屏幕画面可以清楚地看到全市在运行出租车的及时地位和车内人员的音视频信息。批示中间以每周7日>>>详细阅读


    本文标题:Python算法实战系列:栈

    地址:http://www.17bianji.com/lsqh/35452.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)