【发布时间】:2017-02-06 12:03:16
【问题描述】:
在 DFS 中,您可以通过在 DFS-VISIT 过程中初始化两个计数器并增加它们来计算元素(每次调用过程时 +1 节点,每次探索邻接列表时 +1 弧)。我想知道如何在 BFS 中获得相同的结果。 这是 Cormen 的“算法简介”中的 BFS 伪代码,其中 G 是图,s 是源节点,d 是距离,π 是父节点。如何修改它以获得 G 中的节点数和弧数?
BFS(G, s)
for each node u ∈ G.V - {s}
u.color = white
u.d = ∞
u.π = NIL
s.color = GRAY
s.d = 0
s.π = NIL
Q = Ø
ENQUEUE(Q, s)
while Q != Ø
u = DEQUEUE(Q)
for each v ∈ G.Adj[u]
if v.color == WHITE
v.color = GRAY
v.d = u.d + 1
v.π = u
ENQUEUE(Q, v)
u.color = BLACK
【问题讨论】:
标签: graph computer-science graph-algorithm