图的宽度优先遍历

《图的宽度优先遍历》

图的宽度优先遍历(BFS)算法是一个分层搜索的过程,和树的层序遍历算法相同。在图中选中一个节点,作为起始节点,然后按照层次遍历的方式,一层一层地进行访问。
图的宽度优先遍历需要一个队列作为保存当前节点的子节点的数据结构。具体的算法如下所示:
(1) 顶点 V 入队列。
(2) 当队列非空时继续执行,否则算法为空。
(3) 出队列,获得队头节点 V,访问顶点 V 并标记 V 已经被访问。
(4) 查找顶点 V 的第一个邻接顶点 col。
(5) 若 V 的邻接顶点 col 未被访问过,则 col 进队列。
(6) 继续查找 V 的其他邻接顶点 col,转到步骤(5),若 V 的所有邻接顶点都已经被访问过,则转到步骤(2)。

选择 A 作为种子节点,则宽度优先遍历的过程。如下表:
《图的宽度优先遍历》

在上表所示的遍历过程中,出队列的节点顺序既是图的宽度优先遍历的访问顺序。 由此可以看出,图中所示的宽度优先遍历的访问顺序为
A->B->C->D->E->F->H->G->I

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/ccboy2009/article/details/47326329
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞