BFS-Traversierung von gerichteten Graphen von einem bestimmten Knoten

Mein Verständnis der Grundlagen der Breite-zuerst-Suche Traversierung für einen Graphen ist:

BFS        
    Start from any node. 
    Add it to queue. 
    Add it to visited array.

    While queue is not empty:
        Remove head from queue; 
        Print node.

        add all unvisited direct subchilds to que; 
        mark them as visited  

Jedoch, wenn wir durchqueren gerichtet Graphen von einem bestimmten Knoten und nicht alle Knoten erreichbar sind, die aus den gegebenen Knoten (direkt oder indirekt), wie nutzen wir das BFS für das Durchlaufen der graph dieser situation?

Können Sie bitte erklären, in diesem graph auch:

a=> b => d => e => d  
a=> c => d

Hier, wenn der Startknoten ist b wir nie drucken a und c.

Bin ich etwas fehlt in dem Algorithmus?

Ich verwendet HashMap<String, ArrayList> adj = new HashMap(); erstellen des angrenzens Liste zum speichern von Graphen.

  • Nein, du bist an nichts fehlt. Wenn der Knoten nicht erreichbar sind, ist die Suche nicht findet.
InformationsquelleAutor user309687 | 2010-04-06
Schreibe einen Kommentar