二值连通域搜索BFS

这个图解BFS真的很好,所以我就搬过来了。使用队列的FIFO访问。

广度优先搜索定义及其性质
BFS,其英文全称是Breadth First Search。
广度优先搜索算法具有完全性。这意指无论图形的种类如何,只要目标存在,则BFS一定会找到。然而,若目标不存在,且图为无限大,则BFS将不收敛(不会结束)。

广度优先搜索的应用
(1)寻找连接元件
(2)寻找非加权图的两点最短路径

(3)检测二分图

算法思想

将A移出队列
将相邻节点依次加入队列


(1)将B移出队列,如果B有邻接点且未被访问过,将其依次压入队列
(2)将C移出队列,如果C有邻接点且未被访问过,将其依次压入队列
(3)将D移出队列,将其邻接点E压入队列

将D移出队列,将其邻接点H,G依次压入队列

对队列中剩余元素重复相同操作,直至所有元素都被访问过
 

输入顶点数和边数:
8 8
输入顶点信息:
A
B
C
D
E
F
G
H
输入边(Vi,Vj)中的下标i,j和权值:
0 1 1
0 2 1
0 3 1
0 5 1
3 4 1
4 5 1
5 6 1
5 7 1
A F D C B E G H
--------------------------------

参考:数据结构与算法笔记----广度优先搜索(BFS图示+C语言实现)

猜你喜欢

转载自blog.csdn.net/juluwangriyue/article/details/114538482