DFSでは、DFS-VISITプロシージャで2つのカウンタを初期化し、それらをインクリメントすることで要素を数えることができます(プロシージャが呼び出されるたびに+1ノード、隣接リストが探検)。私はBFSで同じ結果を得る方法を考えていました。 これはCormenの「Introduction to Algorithms」のBFS擬似コードです.Gはグラフ、sはソースノード、dは距離、πは父ノードです。どのようにGのノードとアークの数を取得するためにそれを変更できますか?BFSのノードと円弧の計算アルゴリズム
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