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; import java.util.ArrayList;
public class Graph { public class Graph {
ArrayList<Knote> Knoten = new ArrayList<>(); // Graph hat Viele Knoten
ArrayList<Knote> KnotenGraph = new ArrayList<>();
public void addknoten(Knote kn) { // füge Knote hinzu
Knoten.add(kn); public void addknoten(Knote k) {
KnotenGraph.add(k);
} }
public static void main(String[] args) { public Knote getKnote(String name) {
Graph graph = new Graph(); for (Knote kAusKnotenGraph: KnotenGraph) {
if (kAusKnotenGraph.getName().equalsIgnoreCase(name))
Knote kn1 = new Knote(1); return kAusKnotenGraph;
Knote kn2 = new Knote(2); }
Knote kn3 = new Knote(3); return null;
}
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 void printKnotenGraph() {
for (Knote a : KnotenGraph)
System.out.println(a.getName());
}
} }

View File

@ -2,14 +2,21 @@ package Graphen;
public class Kanten { public class Kanten {
//jede Kante verbindet zwei Knoten //jede Kante verbindet zwei Knoten
Knote kn1; Knote anfangsKnote; // mannheim
Knote kn2; Knote endeKnote; // heidelberg
// eine Kante hat einen meter von einem Knote zu einer anderen Knote
int strecke;
public Kanten(Knote kn1, Knote kn2, int strecke) {
this.kn1 = kn1; public Kanten(Knote anfangsKnote, Knote endeKnote) {
this.kn2 = kn2; this.anfangsKnote = anfangsKnote;
this.strecke = strecke; 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; import java.util.ArrayList;
public class Knote { public class Knote {
int value; String name;
//eine Knote kann beliebig viele Kanten haben ArrayList<Kanten> kantenList = new ArrayList<>();
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 public void addKante(Kanten k) {
// hinzuzufügen kantenList.add(k);
public void addKante(Knote zielKnote, int strecke) { }
Kanten kante = new Kanten(this, zielKnote, strecke);
KantenList.add(kante); public String getName() {
zielKnote.KantenList.add(kante); 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();
}
}