Ecco lo pseudocodice standard per la prima ricerca della larghezza:
{ seen(x) is false for all x at this point }
push(q, x0)
seen(x0) := true
while (!empty(q))
x := pop(q)
visit(x)
for each y reachable from x by one edge
if not seen(y)
push(q, y)
seen(y) := true
Qui push
e pop
si presume che siano operazioni in coda. E se fossero operazioni in pila? L'algoritmo risultante visita i vertici nel primo ordine di profondità?
Se hai votato per il commento "questo è banale", ti chiederei di spiegare perché è banale. Trovo il problema abbastanza complicato.
pop
in uno stack o un'operazione in coda, si ottengano dfs o bfs. È anche facile scrivere pseudo-codice per cui a prima vista sembra vero, ma non lo è. ics.uci.edu//~eppstein/161/960215.html è un riferimento pertinente.