![](http://d.aap5.com/20230211/t011cd38027d84d6d62.webp)
宽度优先遍历,是以离初状来自态的状态距离为序进行遍历。
- 中文名称 宽度优先遍历
- 作用 以离初状态的状态距离为序进行遍历
就是以离初状态的状态距离为序进行遍历。
维护来自一个队列,首先将初状态加入队列中,标记该状态已搜索,然后:
1):取出队首元素,将它所有可产生的未标记后继状小货态加入队列,并将其标记为已搜索;
2):当队列未空时重复1);
具体题目加具体处理即可。
二叉树的宽360百科度优先遍历
按层遍历
如右图 :ABCDEF
图的优先遍历
图的宽度优先遍历需要一个队列作为保存当前节点的子节点的数据结构。具体的算法如下所示:
(1)顶点V入队列。
(2)当队列非空时继续执行,否则算法为空。
(3)出队列,获得队头节点V,访问顶点V并标记V已经被访问。
(4)查找顶点V的第一个邻级哪他各免案月材践接顶点col。
(外属友夜景5)若V的邻接顶点col未被访学艺品问过,则col进队着标际周鲜护心年管列。
(6)继续查找V的其他邻接顶点col,转到步骤(5),若V的所有邻接顶点都已经被访问过,则转到步骤(2)。
下面,我们以图示的方式介绍宽度优先遍历的过程,如图1.3所示。
图1.3 宽度优先遍历过程 |
选择A作为种子节点,则宽度优先遍历的过程,如表1.2所示。
表1.2 宽确远快剂言持度优先遍历过程
操作 | 队列中的元素 |
初始 | 法级空 |
A入队列 | A |
A出队列 | 空 |
BCDEF计前音握肉搞留入队列 | BCDEF |
B出队列 | CDEF |
C出队列 | DEF |
D出队列 | 作酸鱼同宜布负施父 EF |
E出队列 | F |
H入队列 | FH |
F出队列 | H |
G入队列 | HG |
H出布再宁酸通杂队列 | G |
I入队列 | GI |
G出队列 | I |
I出队列 | 空 |
在表1.2所示善也回的遍历过程中,出队列的节点顺序既是图的宽度优先遍历的访问商美式介行势顺序。由此可以看出,图1.3所示的宽度优先遍历的访问顺序为
A->B->C->D->E->F->H->G->I
C++代码: