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;
|
||||
|
||||
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 Knote getKnote(String name) {
|
||||
for (Knote kAusKnotenGraph: KnotenGraph) {
|
||||
if (kAusKnotenGraph.getName().equalsIgnoreCase(name))
|
||||
return kAusKnotenGraph;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
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 void printKnotenGraph() {
|
||||
for (Knote a : KnotenGraph)
|
||||
System.out.println(a.getName());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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