码迷,mamicode.com
首页 > 其他好文 > 详细

DFS BFS伪代码

时间:2015-02-15 19:19:07      阅读:1006      评论:0      收藏:0      [点我收藏+]

标签:

dfs可以使用堆栈实现,也可以使用递归的方式实现。利用堆栈的形式伪代码如下:

本文都是以走迷宫为例子

DFS:

将起点标记为已走过的点,并压栈;

while(栈不为空)

{

  从栈顶弹出一个点P;

  if(p是终点)

    break;

  否则沿上下左右四个方向探索

  if(和P相邻的点有路可走,并且没有走过)

    将相邻的点标记为已走过点,并且将改点压栈,改点的前驱就是P点

}

if (P是终点)

{

  打印P店的坐标;

  while(p有前驱)

  {

    P = P 的前驱;

    打印P坐标;

  }

else

  没有路线走出迷宫

 

BFS则是使用队列的方式实现,能够找到最短的路径

将起点标记为已走过的点,并入队列;

while(队列不为空)

{

  出队列一个点P;

  if(p是终点)

    break;

  否则沿上下左右四个方向探索

  if(和P相邻的点有路可走,并且没有走过)

    将相邻的点标记为已走过点,并且将改点入队列,该点的前驱就是P点

}

if (P是终点)

{

  打印P店的坐标;

  while(p有前驱)

  {

    P = P 的前驱;

    打印P坐标;

  }

else

  没有路线走出迷宫

 

DFS BFS伪代码

标签:

原文地址:http://www.cnblogs.com/chenxf0619/p/4293328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!