初始确定一个开始顶点source,一个空的集合S,用来存储已探索到的顶点,初始化为空,一个队列Q,初始化也为空。

1、将source加入Q中

2、如果Q为空,失败且退出

3、选出Q中的第一个顶点,移出并加入S中,称该顶点为u

4、如果u是目标顶点,获得解决方案,并成功退出

5、否则得到u的所有相邻顶点,进行处理,并将这些相邻顶点加入Q

6、按照启发方式对Q进行排序

7、返回步骤2

 

对于广度优先搜索,步骤5的处理就是将相邻顶点直接加入Q的尾部;

对于深度优先搜索,步骤5的处理就是将相邻顶点加入Q的开始部分;

对于Dijkstra算法,步骤5的处理就是松弛,并在步骤6按照dist从小到大进行排序

相关文章:

  • 2022-12-23
  • 2021-12-17
  • 2021-08-03
  • 2021-10-27
  • 2021-12-15
  • 2022-12-23
  • 2021-12-01
猜你喜欢
  • 2021-06-15
  • 2022-12-23
  • 2021-12-07
  • 2021-06-01
  • 2022-12-23
  • 2021-07-09
  • 2021-11-06
相关资源
相似解决方案