2012-03-30 5 views
0

Ich habe eine Methode "Verbindung (int n)", die mir alle Zellen Nummer, die Beziehung mit der Zellennummer "n" haben jetzt will ich eine Methode, die mir alle Routen gibt mit einer bestimmten Länge "myLength", die von der Zellennummer "start" und nur in einer Richtung (wie es üblich ist) ich meine, wir sind nicht erlaubt, einige Zellen mehr als einmal zu übergeben Vielen Dank im Voraus für Ihre Hilfe PS Ich kann Kartenwerkzeuge, Diagrammwerkzeuge, ... mit grundlegenden Werkzeugen nicht benutzen bitteRoute in Grafik mit spezifischer Länge von einem Punkt

+1

Also ... willst du eine Methode? Das ist interessant ... – ControlAltDel

+0

Wenn man einen Quellknoten $ v $ und eine Länge $ l angibt, gibt $ Breadth-First Search alle Scheitelpunkte an der Grenze $ l $ Kanten weg von $ v. $ –

+0

Oh. Ihr habt kein LaTeX auf MO .. –

Antwort

0

Sie suchen nach BFS.

Modell Ihr Problem als ein graphG = (V,E) so dass V = {1,...,n} [alle möglichen Werte] und E = { (u,v) | connection(u) returns v } [es eine Verbindung zwischen u und v mit Ihrer connection() Methode]

Neben dem Standard BFS, müssen Sie Fügen Sie eine weitere Stoppbedingung hinzu, wenn Sie die begrenzte Länge erreicht haben.

EDIT:
Beachten Sie, dass diese Lösung voraus, dass Sie suchen einen Weg up-to Länge und nicht genau Länge.
BFS funktioniert hier nicht für das Zählerbeispiel eines clique, wenn Sie genau der Länge wollen.

Um alle Ecken zu erhalten, die einen einfachen Weg von genau Länge haben - Sie werden wahrscheinlich eine DFS benötigen, die Schleifen vermeidet [kann durch die Aufrechterhaltung einer set erfolgen, die bei jeder Iteration geändert wird], aber jede Ecke mehr erkunden kann dann Einmal.

+0

können Sie bitte den Code in Java geben, aber bitte benutzen Sie Java Graph Utilities und Map Utilities! –

+0

Ich bin damit konfrontiert: Klicken Sie [hier] http://en.wikipedia.org/wiki/Depth-first_search das ist, was ich wollte, aber es verwendet viel von Karte, Grafik, Set, ..., dass ich nicht Ich will eine rekursive Funktion, um es zu tun? –

Verwandte Themen