DFS vs BFS i Träd

Visualisera hur Stacken (LIFO) i DFS och Kön (FIFO) i BFS arbetar steg för steg när trädet söks igenom.

Målnod: G
Normal
Oanvänd nod
Besökt nod
Aktiv / Undersöks
Målnod
Målet hittat!

Depth-First Search (DFS)

Går så djupt som möjligt först längs varje gren.

Stack (LIFO)
A B C D E F G
STACK (LIFO) Toppen längst upp ⬆
Stacken är tom
Status: Redo att starta sökning. Steg: 0

Breadth-First Search (BFS)

Utforskar nivå för nivå i bredd från roten.

Kö (FIFO)
A B C D E F G
KÖ (FIFO) Först in (vänster) ➔ Först ut (höger)
Kön är tom
Status: Redo att starta sökning. Steg: 0

Vad händer i bakgrunden?

DFS & Stackens beteende

När nod A besöks läggs dess barn B och C på stacken. Eftersom högra barnet (C) läggs till först hamnar det underst, och vänstra barnet (B) hamnar överst. Datorn plockar B härnäst, vilket gör att sökningen dyker djupt ner i grenen B ➔ D.

BFS & Köns beteende

När nod A besöks ställer sig barnen B och C i kön (vänster till höger). Datorn tar ut den som stod först (B), undersöker den och lägger dess barn sist i kön. BFS beta av hela nivå 1 innan den går vidare till nivå 2.