Schreiben Sie eine DFS mit iterativer Vertiefung ohne Rekursion
Also derzeit habe ich ein DFS mit den folgenden pseudocode
procedure DFS(Graph,source):
create a stack S
push source onto S
mark source
while S is not empty:
pop an item from S into v
for each edge e incident on v in Graph:
let w be the other end of e
if w is not marked:
mark w
push w onto S
Wie kann ich ändern, diese Funktion zu übernehmen, eine Dritte argument, das schränkt die Tiefe der Suche?
- Es ist obligatorisch für den iterativen Weg? Es könnte so einfach sein mit Rekursion...
- Es ist nicht ganz korrekt DFS-Algorithmus. Es besucht alle Nachfolger von vertex-und erst dann geht tiefer. Sollte es tiefer gehen zuerst, dann backtrack zu besuchen, die anderen untergeordneten Knoten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lassen Knoten eine Struktur, die für jeden Knoten des Graphen, fügen Sie ein Feld namens Ebene und dann:
pop an item from S into v
kann übersetzt werden in viele Anleitungen.