Graphen
parent
bf27079e24
commit
7fe3e8f765
|
@ -0,0 +1 @@
|
||||||
|
,obai,obai-HP-Laptop-15-da0xxx,28.08.2024 17:18,file:///home/obai/.config/libreoffice/4;
|
|
@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue