Ini adalah pseudocode standar untuk pencarian pertama luasnya:
{ 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
Di sini push
dan pop
dianggap sebagai operasi antrian. Tetapi bagaimana jika mereka adalah operasi stack? Apakah algoritma yang dihasilkan mengunjungi simpul dalam urutan pertama?
Jika Anda memilih komentar "ini sepele", saya akan meminta Anda untuk menjelaskan mengapa itu sepele. Saya menemukan masalahnya cukup rumit.
pop
ke stack atau operasi antrian, kita mendapatkan dfs atau bfs. Juga mudah untuk menulis pseudo-code yang pertama kali muncul bahwa ini benar, tetapi tidak. ics.uci.edu//~eppstein/161/960215.html adalah referensi yang relevan.