Ich möchte einen gerichteten Graphen in eine Eindimensionale Liste bekommen.
Angenommen ich habe 6 Elemente die ich sortieren möchte.
Dafür verwende ich in JAVA einen Comparator, bzw. Comparable. Soweit so klar.
Die Elemente sind wie folgt:
A, B, C, D, E, X
Es gibt einen Pfad von A nach E. Es bestehen genügend Informationen um dass Sortieren zu können. (A => B => C => D => E)
Es gibt einen weiteren Pfad von A über X nach E.
Ich wäre also mit jeder Kombination
A, x, B, C, D, E
A, B, x, C, D, E
A, B, C, x, D, E
A, B, C, D,x, E
zufrieden.
Für Vergleiche zwischen B, C, D mit X gebe ich 0 zurück.
Jetzt habe ich folgenden Effekt, wenn die Reihenfolge des Hinzufügens/Sortierens so aussieht.
+C => C
+D => C,D
+E => C,D,E
+X => D.compareTo(X) == 0 => C,X,D,E // Wäre noch in Ordnung.
+B => B.compareTo(X) == 0 => C,B,X,D,E // Problem, da B nach C einsortiert wird.
+A => A,C,B,X,D,E
Das Problem beim Comparator ist, dass ich 0 zurückgebe, wenn mangelnde Informationen vorliegen. 0 wird als Gleichheit interpretiert, statt Ungewissheit. Null kann ich allerdings nicht zurückgeben.
Hat jemand eine Idee?
Besten Dank