Forum: Programmieren allgemein
C#
by BUG,
4. Jun 2014
Letztendlich ist halt wirklich die Frage, was du damit machen willst.
Wenn die Anzahl der Stationen klein ist oder die Eigenschaften der Verknüpfung günstig, dann macht es vielleicht wirklich Sinn, alle Pfade auszugeben. Bei mehr als ein paar dutzend Pfaden würde ich das aber bezweifeln.
Du könntest anstelle einzelnen Pfade auch einen Prefixbaum ausgeben, das würde die Sache dann deutlich...
Forum: Programmieren allgemein
C#
by BUG,
3. Jun 2014
Wenn du die Kreise bloß erkennen willst, dann hast du es einfacher. Eine Breiten- oder Tiefensuche sollte ausreichen.
Breitensuche:
Du hast eine Menge von (unfertigen) Pfaden. In jedem Schritt erstellst du eine neue Menge, die alle Pfade enthält, die durch Herabhängen einer gültigen Folge-Station entstehen. Wenn du Kreise feststellst (den bisherigen Pfad durchgehen) oder ein Pfad das Ziel...
Forum: Programmieren allgemein
C#
by BUG,
3. Jun 2014
Wenn du Kreise drin hast, gibt natürlich ein Problem, wenn du alle Pfade ausgeben möchtest :mrgreen:
Im Prinzip ist dein Plan ein nicht deterministischer Zustandsautomat, wobei das Tupel (Quell-Station, Teil-Art) der Zustand ist. Die Fahrplan-Einträge fügen dann eine (Gutteil/Schlechtteil) oder zwei Transitionen (alle Teile) hinzu.
Dieser Automat erkennt dann alle möglichen Wege für ein Teil.