Class TelNet

java.lang.Object
TelNetApplication.TelNet

public class TelNet extends Object
Klasse zur Verwaltung von Telefonknoten mit (x,y)-Koordinaten und zur Berechnung eines minimal aufspannenden Baums mit dem Algorithmus von Kruskal. Kantengewichte sind durch den Manhattan-Abstand definiert.
Since:
15.12.2024
  • Constructor Summary

    Constructors
    Constructor
    Description
    TelNet​(int lbg)
    Legt ein neues Telefonnetz mit dem Leitungsbegrenzungswert lbg an.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    addTelKnoten​(int x, int y)
    Fügt einen neuen Telefonknoten mit Koordinate (x,y) dazu.
    boolean
    Berechnet ein optimales Telefonnetz als minimal aufspannenden Baum mit dem Algorithmus von Kruskal.
    void
    drawOptTelNet​(int xMax, int yMax)
    Zeichnet das gefundene optimale Telefonnetz mit der Größe xMax*yMax in ein Fenster.
    void
    generateRandomTelNet​(int n, int xMax, int yMax)
    Fügt n zufällige Telefonknoten zum Netz dazu mit x-Koordinate aus [0,xMax] und y-Koordinate aus [0,yMax].
    Liefert ein optimales Telefonnetz als Liste von Telefonverbindungen zurück.
    int
    Liefert die Gesamtkosten eines optimalen Telefonnetzes zurück.
    static void
    main​(String[] args)
    Anwendung.
    int
    Liefert die Anzahl der Knoten des Telefonnetzes zurück.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • TelNet

      public TelNet(int lbg)
      Legt ein neues Telefonnetz mit dem Leitungsbegrenzungswert lbg an.
      Parameters:
      lbg - Leitungsbegrenzungswert.
  • Method Details

    • addTelKnoten

      public boolean addTelKnoten(int x, int y)
      Fügt einen neuen Telefonknoten mit Koordinate (x,y) dazu.
      Parameters:
      x - x-Koordinate.
      y - y-Koordinate.
      Returns:
      true, falls die Koordinate neu ist, sonst false.
    • computeOptTelNet

      public boolean computeOptTelNet()
      Berechnet ein optimales Telefonnetz als minimal aufspannenden Baum mit dem Algorithmus von Kruskal.
      Returns:
      true, falls es einen minimal aufspannden Baum gibt, sonst false.
    • getOptTelNet

      public List<TelVerbindung> getOptTelNet() throws IllegalStateException
      Liefert ein optimales Telefonnetz als Liste von Telefonverbindungen zurück.
      Returns:
      Liste von Telefonverbindungen.
      Throws:
      IllegalStateException - falls nicht zuvor computeOptTelNet() erfolgreich durchgeführt wurde.
    • getOptTelNetKosten

      public int getOptTelNetKosten() throws IllegalStateException
      Liefert die Gesamtkosten eines optimalen Telefonnetzes zurück.
      Returns:
      Gesamtkosten eines optimalen Telefonnetzes.
      Throws:
      IllegalStateException - falls nicht zuvor computeOptTelNet() erfolgreich durchgeführt wurde.
    • drawOptTelNet

      public void drawOptTelNet(int xMax, int yMax) throws IllegalStateException
      Zeichnet das gefundene optimale Telefonnetz mit der Größe xMax*yMax in ein Fenster.
      Parameters:
      xMax - Maximale x-Größe.
      yMax - Maximale y-Größe.
      Throws:
      IllegalStateException - falls nicht zuvor computeOptTelNet() erfolgreich durchgeführt wurde.
    • generateRandomTelNet

      public void generateRandomTelNet(int n, int xMax, int yMax)
      Fügt n zufällige Telefonknoten zum Netz dazu mit x-Koordinate aus [0,xMax] und y-Koordinate aus [0,yMax].
      Parameters:
      n - Anzahl Telefonknoten
      xMax - Intervallgrenz für x-Koordinate.
      yMax - Intervallgrenz für y-Koordinate.
    • size

      public int size()
      Liefert die Anzahl der Knoten des Telefonnetzes zurück.
      Returns:
      Anzahl der Knoten des Telefonnetzes.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • main

      public static void main(String[] args)
      Anwendung.
      Parameters:
      args - wird nicht benutzt.