Hvordan implementere DFS & BFS Traversal i Java

Dybde-først søk (DFS) og best første søk (BFS) er to gjennomløping du kan kjøre på Java trestrukturer. De starter på en bestemt node og armen ut inntil de finner søkeobjektet. Den eneste forskjellen er retningen: DFS søker ned fra node, BFS søker horisontalt til nabonoder. Implementering av DFS og BFS gjennomløping er relativt enkelt, fordi, selv om koden er lang, er det bare et par steder hvor det er behov for å være tilpasset for dine data.

Bruksanvisning

1 Åpne din Java-kode.

2 Kopier og lim inn følgende der du vil at traversering å kjøre:
public void TRAV ()
{
Stack s = new Stack ();
s.push (this.rootNode);
rootNode.PROP;
printNode (rootNode);
while (! s.isEmpty ())
{
Node n = (Node) s.peek ();
Node barn = getUnvisitedChildNode (n);
if (barn! = null)
{
child.visited = true;
printNode (barn);
s.push (barn);
}
ellers
{
s.pop ();
}
}
clearNodes ();
}

3 Erstatt "TRAV" med enten "DFS" eller "BFS".

4 Erstatt "PROP" med søket eiendom. Dette kan være en hvilken som helst Java tilstanden ved hjelp av vanlige Java-kode.

5 Kjør koden. Det vil utføre DFS / BFS traversering og vise resultatene i et nytt vindu når den er ferdig.