2016-06-21 5 views
-1

My graph looks like thisSuche alle möglichen Pfade vom Kind bis zur Top-Level-Mutter

Wie alle möglichen Pfade vom Kind bis zum Top-Level-Eltern in einem Diagramm in C# finden? Ich habe ein einzelnes Top-Elternteil in der Grafik. Alle Knoten haben eigene ID, Name und Eltern-ID. Der oberste Elternteil hat die Eltern-Null und ein Kind kann mehrere Eltern haben. [Ich muss alle Wege von H bis A als finden HEBA, HGDA UND HECA Mein Knoten ist wie folgt.

class Node 
    { 
     public int Id { get; set; } 
     public List<int> ParentId { get; set; } 
     public string Name { get; set; } 
    } 
+1

können Sie einen Code schreiben? – Thomas

+1

Welche Datenstruktur verwenden Sie, um den Digraph darzustellen? – Codor

+1

@Thomas Ich habe Update-Frage. – pariwartan

Antwort

0

Sie können alle Pfade von 1 Kind auf die oberste Ebene Eltern herausfinden, mit einem BFS: https://en.wikipedia.org/wiki/Breadth-first_search oder auch ein DFS: https://en.wikipedia.org/wiki/Depth-first_search. Beide können rekursiv und iterativ geschrieben werden. Aber seien Sie vorsichtig, wenn Sie eine Schleife wie Node1 haben -> Knoten2 -> Node1 dann diese Algorithmen nie wieder

Wenn Sie die schnellste Art und Weise suchen Sie auch dijkstra verwenden können: https://de.wikipedia.org/wiki/Dijkstra-Algorithmus

+0

Ich konnte die Pfade nicht speichern. Können Sie mir ein Beispiel geben? – pariwartan

+0

Danke aber das ist in English. – pariwartan

+0

Entschuldigung ... hier ist der englische Link: https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm – Thomas

Verwandte Themen