public class GraphDemo1{
public static void main(String[] args){
Knoten k1 = new Knoten("A");
Knoten k2 = new Knoten("B");
Knoten k3 = k2;
System.out.println("k2: "+k2.name);
k3.name = "Heisst Jetzt Anders";
System.out.println("k2: "+k2.name);
Knoten k1 = new Knoten("A");
neuerKnoten(k1,"B");
neuerKnoten(k1,"C");
ausgeben(k1);
}
}
class Knoten {
String name;
Knoten naechster;
Nachbarschaft erster;
Knoten(String n) {
name=n;
}
void nachbarAnhaengen(Knoten knoten,int entfernung){
Nachbarschaft n = new Nachbarschaft(knoten, entfernung);
if(erste == null){
erste = n;
} else {
Nachbarschaft aktuell = erste;
while(aktuell.naechste != null){
aktuell=akutell.naechste;
}
aktuell.naechste = n;
}
}
}
class Graph {
Knoten erster;
public void neuerKnoten(Knoten k, String name){
Knoten neu = new Knoten(name);
Knoten aktuell = k;
while (aktuell.naechster != null) {
aktuell = aktuell.naechster;
}
aktuell.naechster = neu;
}
void verbinde(String name1, int entfernung, String name2) {
Knoten k1 = finde(name1);
Knoten k2 = finde(name2);
k1.nachbarAnhaengen(k2,entfernung);
}
public static void ausgeben(Knoten k){
Knoten aktuell = k;
while (aktuell != null){
System.out.println(k.name);
aktuell = aktuell.naechster;
}
}
public Knoten finde(String name) {
Knoten aktuell = erster;
while (aktuell != null) {
if ( aktuell.name.equals(name)) {
return aktuell;
}
aktuell = aktuell.naechster;
}
return null;
}
}
class Nachbarschaft {
Nachbarschaft naechster;
Knoten knoten;
int entfernung;
Nachbarschaft (Knoten k){
knoten = k;
}
}
|