§06 图结构
二分图判定
BFS 交替染色:相邻顶点必须异色。染色完成无冲突即二分图;同色相邻说明存在奇环。
二分图判定
伪代码
1
// 二分图判定:BFS 交替染色
2
color[所有] ← 未染色
3
for each 未染色的 v:
4
color[v] ← A
5
queue ← [v]
6
while queue not empty:
7
u ← dequeue
8
for each (u, w):
9
if color[w] == color[u]: 不是二分图
10
if color[w] 未染色: color[w] ← 相反色; enqueue(w)
11
end for