一个通用的图搜索算法

初始确定一个开始顶点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从小到大进行排序

转载于:https://www.cnblogs.com/daniagger/archive/2012/07/06/2578830.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值