Hallo,
folgende Klasse repräsentiert eine Kante in einem Graphen:
Mal angenommen ich habe einen Graphen mit zwei Knoten, dann wären in diesem Graphen folgende Kanten möglich:
M = { (1,1), (1,2), (2,1), (2,2) }
Wie könnte denn ein Algorithmus aussehen der mir aus der Menge M sämtliche Teilmengen ermittelt?
Der Algorithmus müßte für das Beispiel folgendes Ergebnis liefern:
E =
{
{},
{(1,1)}, {(1,2)}, {(2,1)}, {(2,2)},
{(1,1)(1,2)}, {(1,1)(2,1)}, {(1,1)(2,2)}, {(1,2)(2,1)}, {(1,2)(2,2)}, {(2,1)(2,2)},
{(1,1)(1,2)(2,1)}, {(1,1)(1,2)(2,2)}, {(1,1)(2,1)(2,2)}, {(1,2)(2,1)(2,2)},
{(1,1)(1,2)(2,1)(2,2)}
}
folgende Klasse repräsentiert eine Kante in einem Graphen:
Code:
public class Kante
{
private int von;
private int nach;
public Kante(int von, int nach)
{
this.von = von;
this.nach = nach;
}
public int getVon()
{
return this.von;
}
public int getNach()
{
return this.nach;
}
}
Mal angenommen ich habe einen Graphen mit zwei Knoten, dann wären in diesem Graphen folgende Kanten möglich:
M = { (1,1), (1,2), (2,1), (2,2) }
Wie könnte denn ein Algorithmus aussehen der mir aus der Menge M sämtliche Teilmengen ermittelt?
Der Algorithmus müßte für das Beispiel folgendes Ergebnis liefern:
E =
{
{},
{(1,1)}, {(1,2)}, {(2,1)}, {(2,2)},
{(1,1)(1,2)}, {(1,1)(2,1)}, {(1,1)(2,2)}, {(1,2)(2,1)}, {(1,2)(2,2)}, {(2,1)(2,2)},
{(1,1)(1,2)(2,1)}, {(1,1)(1,2)(2,2)}, {(1,1)(2,1)(2,2)}, {(1,2)(2,1)(2,2)},
{(1,1)(1,2)(2,1)(2,2)}
}