图的遍历有两种方式,一种是深度优先遍历,另一种是广度优先遍历
广度优先遍历
广度优先搜索是按层来处理顶点,距离开始点最近的那些顶点首先被访问,而最远的那些顶点则最后被访问,这个和树的层序变量很像,BFS的代码使用了一个队列。
我们先把start节点的关联节点遍历一次
代码实现
文字伪代码
把start节点push入队列;
while(队列不为空) {
把队列首节点pop出队列;
对节点进行相关处理或者判断;
while(此节点有下一个相关节点){
把相关节点push入对列;
}
}
步骤
遍历序列的可变性
如果是⾮连通图,则⽆法遍历完所有结点
复杂度分析
空间复杂度:最坏情况,辅助队列⼤⼩为O(|V|)
⼴度优先⽣成树