Uebungsaufgaben/GraphenTeorie/Knoten.java

107 lines
2.3 KiB
Java
Raw Normal View History

2024-05-18 20:35:28 +00:00
package GraphenTeorie;
import java.util.ArrayList;
public class Knoten {
private String beschriftung;
2024-06-11 14:23:46 +00:00
private boolean markiert;
2024-05-18 20:35:28 +00:00
private ArrayList<Kante> eingehendeKanten;
private ArrayList<Kante> ausgehendeKanten;
private ArrayList<Kante> anliegendeKanten;
private ArrayList<Knoten> nachbarKnoten;
public Knoten() {
this("");
}
public Knoten(String beschriftung) {
this.beschriftung = beschriftung;
2024-06-11 14:23:46 +00:00
this.markiert = false;
2024-05-18 20:35:28 +00:00
this.eingehendeKanten = new ArrayList<>();
this.ausgehendeKanten = new ArrayList<>();
this.anliegendeKanten = getAnliegendeKanten();
}
public ArrayList<Kante> getAnliegendeKanten() {
ArrayList<Kante> neueListe = new ArrayList<>(this.eingehendeKanten);
neueListe.addAll(this.ausgehendeKanten);
this.anliegendeKanten = neueListe;
return this.anliegendeKanten;
}
public ArrayList<Kante> getEingehendeKanten() {
return this.eingehendeKanten;
}
public ArrayList<Kante> 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);
}
2024-06-11 14:23:46 +00:00
public void setMarkierung(boolean markiert) {
this.markiert = markiert;
}
public boolean getMarkierung() {
return this.markiert;
}
2024-05-18 20:35:28 +00:00
public ArrayList<Knoten> getAllNachbarKnoten() {
ArrayList<Knoten> nachbarnListe = new ArrayList<>();
for (Kante i: this.anliegendeKanten) {
nachbarnListe.add(i.getOtherSide(this));
}
return nachbarnListe;
}
public void editBeschriftung(String neueBeschriftung) {
this.beschriftung = neueBeschriftung;
}
2024-05-22 21:00:22 +00:00
2024-06-11 14:23:46 +00:00
// Wenn man den Knoten löscht, teilt sich der Graph
2024-05-22 21:00:22 +00:00
public boolean isArtikulation() {
return true;
}
2024-06-11 14:23:46 +00:00
// Implementierung mit Dijkstra
2024-05-22 21:00:22 +00:00
public int distanzTo(Knoten k1) {
2024-06-11 14:23:46 +00:00
ArrayList<Knoten> baum = new ArrayList<>();
baum.add(this);
2024-05-22 21:00:22 +00:00
return 1;
}
2024-06-11 14:23:46 +00:00
// Maximaler Abstand zu irgendeinem Knoten
public int exzentrizitaet() {
2024-05-22 21:00:22 +00:00
return 1;
}
2024-05-18 20:35:28 +00:00
}