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.
InformationsquelleAutor Jonathan | 2011-09-21
Schreibe einen Kommentar