A „bejárás” azt jelenti, hogy felsoroljuk a pontokat valamilyen előre megadott szabály / sorrend szerint.
Szélességi bejárás
- angolul Breadth First Search, románul parcurgere în lățime
- Adott kiindulópontból kezdünk, melyet kezdetben egy várakozási sorba (queue) teszünk.
- Minden lépésben „meglátogatjuk” a sor elején levő elemet: kivesszük őt a sorból és betesszük a sor végére a szomszédait.
- Az algoritmus megáll, ha elfogytak az elemek a sorból.
Példa
Az alábbi gráfon az 1-es pontból indulva szélességi bejárást végzünk:

Az egyik lehetséges felfedezési sorrend (a sor tartalma):
1 2 3 4 6 5 7 10
Mivel egy pont szomszédjainak sorrendje nem rögzített, ezért más bejárási sorrend is lehetséges, pl.
1 3 2 6 4 7 10 5
Megjegyzések:
- Csak azok a csomópontok lesznek meglátogatva, akik ugyanazon összefüggő komponensben vannak a kiindulóponttal.
- A pontok megjelenésének sorrendje a kiinduló ponttól mért távolságuk szerinti sorrend (távolság == hány élen kell keresztül menni, hogy a kiinduló pontból eljussunk hozzá).
Implementáció
| |
Mélységi bejárás
- angolul Depth First Search, románul parcurgere în adâncime
- Elindulunk a kezdőpontból, addig megyünk előre, amíg tudunk (amíg vannak még nem látogatott pontok), közben egy verembe (stack) tesszük azokat a csomópontokat, amiken átmentünk.
- Amint nem lehet tovább menni, visszatérünk (a veremben előző elemre), és innen próbáljuk meg új ágon folytatni a bejárást.
- Ha nem lehet már folytatni, ismét visszatérünk és így tovább, míg a verem ki nem ürül.
Példa
Az alábbi gráfon mélységi bejárást végzünk a 3-as pontból indulva:

Az egyik lehetséges bejárási sorrend:
3 1 2 4 5 6 7 10
Közben a verem tartalmának alakulása:
3
3 1
3 1 2
3 1 2 4
3 1 2 4 5
3 1 2 4
3 1 2
3 1
3
3 6
3 6 7
3 6
3 6 10
3 6
3
Implementáció
| |