package GraphenTeorie; import java.util.ArrayList; public class Knoten { private String beschriftung; private boolean markiert; private ArrayList eingehendeKanten; private ArrayList ausgehendeKanten; private ArrayList anliegendeKanten; private ArrayList nachbarKnoten; public Knoten() { this(""); } public Knoten(String beschriftung) { this.beschriftung = beschriftung; this.markiert = false; this.eingehendeKanten = new ArrayList<>(); this.ausgehendeKanten = new ArrayList<>(); this.anliegendeKanten = getAnliegendeKanten(); } public ArrayList getAnliegendeKanten() { ArrayList neueListe = new ArrayList<>(this.eingehendeKanten); neueListe.addAll(this.ausgehendeKanten); this.anliegendeKanten = neueListe; return this.anliegendeKanten; } public ArrayList getEingehendeKanten() { return this.eingehendeKanten; } public ArrayList getAusgehendeKanten() { return this.ausgehendeKanten; } public void addEingehendeKante(Kante neueKante) { this.eingehendeKanten.add(neueKante); this.anliegendeKanten.add(neueKante); } public void addAusgehendeKante(Kante neueKante) { this.ausgehendeKanten.add(neueKante); this.anliegendeKanten.add(neueKante); } public void setMarkierung(boolean markiert) { this.markiert = markiert; } public boolean getMarkierung() { return this.markiert; } public ArrayList getAllNachbarKnoten() { ArrayList nachbarnListe = new ArrayList<>(); for (Kante i: this.anliegendeKanten) { nachbarnListe.add(i.getOtherSide(this)); } return nachbarnListe; } public void editBeschriftung(String neueBeschriftung) { this.beschriftung = neueBeschriftung; } // Wenn man den Knoten löscht, teilt sich der Graph public boolean isArtikulation() { return true; } // Implementierung mit Dijkstra public int distanzTo(Knoten k1) { ArrayList baum = new ArrayList<>(); baum.add(this); return 1; } // Maximaler Abstand zu irgendeinem Knoten public int exzentrizitaet() { return 1; } }