图的遍历

图的遍历是图算法的基础:从某顶点出发,沿边不重复地访问所有可达顶点。广度优先 (BFS)用队列逐层扩散,深度优先(DFS)用递归一路深入。观察顶点颜色变化,推演两种 遍历的访问顺序。

图的遍历
01 / 14 步
无向图共 6 个顶点、8 条边。从顶点 0 开始广度优先(队列)遍历。 比较 0 · 交换 0
伪代码

				
					
					1
					procedure BFS(G, v0)
				
			
				
					
					2
					  visited ← 全 false
				
			
				
					
					3
					  queue ← empty queue
				
			
				
					
					4
					  visited[v0] ← true; enqueue(queue, v0)
				
			
				
					
					5
					  while queue not empty do
				
			
				
					
					6
					    u ← dequeue(queue); visit(u)
				
			
				
					
					7
					    for each neighbor w of u do
				
			
				
					
					8
					      if not visited[w] then
				
			
				
					
					9
					        visited[w] ← true; enqueue(queue, w)
				
			
				
					
					10
					  end while
				
			
				
					
					11
					end procedure
				
			
01 / 14
速度