master
obai 2024-08-28 19:37:08 +02:00
parent bf27079e24
commit 7fe3e8f765
5 changed files with 84 additions and 43 deletions

View File

@ -0,0 +1 @@
,obai,obai-HP-Laptop-15-da0xxx,28.08.2024 17:18,file:///home/obai/.config/libreoffice/4;

View File

@ -3,30 +3,25 @@ package Graphen;
import java.util.ArrayList;
public class Graph {
ArrayList<Knote> Knoten = new ArrayList<>();
// Graph hat Viele Knoten
ArrayList<Knote> KnotenGraph = new ArrayList<>();
public void addknoten(Knote kn) {
Knoten.add(kn);
// füge Knote hinzu
public void addknoten(Knote k) {
KnotenGraph.add(k);
}
public static void main(String[] args) {
Graph graph = new Graph();
Knote kn1 = new Knote(1);
Knote kn2 = new Knote(2);
Knote kn3 = new Knote(3);
graph.addknoten(kn1);
graph.addknoten(kn2);
graph.addknoten(kn3);
// Verbindet kn1 mit kn2 und kn1 mit kn3
kn1.addKante(kn2, 5); // Strecke 5 Meter
kn1.addKante(kn3, 10); // Strecke 10 Meter
public Knote getKnote(String name) {
for (Knote kAusKnotenGraph: KnotenGraph) {
if (kAusKnotenGraph.getName().equalsIgnoreCase(name))
return kAusKnotenGraph;
}
return null;
}
public void printKnotenGraph() {
for (Knote a : KnotenGraph)
System.out.println(a.getName());
}
}

View File

@ -2,14 +2,21 @@ package Graphen;
public class Kanten {
//jede Kante verbindet zwei Knoten
Knote kn1;
Knote kn2;
// eine Kante hat einen meter von einem Knote zu einer anderen Knote
int strecke;
Knote anfangsKnote; // mannheim
Knote endeKnote; // heidelberg
public Kanten(Knote kn1, Knote kn2, int strecke) {
this.kn1 = kn1;
this.kn2 = kn2;
this.strecke = strecke;
public Kanten(Knote anfangsKnote, Knote endeKnote) {
this.anfangsKnote = anfangsKnote;
this.endeKnote = endeKnote;
anfangsKnote.addKante(this);
endeKnote.addKante(this);
}
public Knote getPartner(Knote k) {
Knote partner = (k == anfangsKnote) ? endeKnote : anfangsKnote;
return partner;
}
}

View File

@ -3,21 +3,39 @@ package Graphen;
import java.util.ArrayList;
public class Knote {
int value;
//eine Knote kann beliebig viele Kanten haben
ArrayList<Kanten> KantenList = new ArrayList<>();
String name;
ArrayList<Kanten> kantenList = new ArrayList<>();
public Knote(int value) {
this.value = value;
Knote(String name){
this.name = name;
}
// Methode, um eine Kante zwischen diesem Knoten und einem anderen Knoten
// hinzuzufügen
public void addKante(Knote zielKnote, int strecke) {
Kanten kante = new Kanten(this, zielKnote, strecke);
KantenList.add(kante);
zielKnote.KantenList.add(kante);
public void addKante(Kanten k) {
kantenList.add(k);
}
public String getName() {
return name;
}
public ArrayList<Kanten> getKantenList() {
return kantenList;
}
ArrayList<Knote> verbindeteKnoten;
public void getPartner() {
ArrayList<Kanten> merker = getKantenList();
if (merker == null)
return ;
verbindeteKnoten = new ArrayList<>();
for (Kanten m : merker)
verbindeteKnoten.add(m.getPartner(this));
for (Knote k: verbindeteKnoten)
System.out.println(this.name + " verbindet mit " + k.getName());
}
}

View File

@ -0,0 +1,20 @@
package Graphen;
public class Test {
public static void main(String[] args) {
Graph graph = new Graph();
Knote mannheim = new Knote("Mannheim");
Knote heidelberg = new Knote("Heidelberg");
graph.addknoten(mannheim);
graph.addknoten(heidelberg);
new Kanten(graph.getKnote("Mannheim"),graph.getKnote("Heidelberg"));
mannheim.getPartner();
heidelberg.getPartner();
}
}