Java-Aufgabe GraphDemo1.java

Zurück
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;
  }
}