diff --git a/Programmierung2/src/Graphen/Graph.java b/Programmierung2/src/Graphen/Graph.java index 279a7d9..2e098a1 100644 --- a/Programmierung2/src/Graphen/Graph.java +++ b/Programmierung2/src/Graphen/Graph.java @@ -11,6 +11,8 @@ public class Graph { KnotenGraph.add(k); } + + public Knote getKnote(String name) { for (Knote kAusKnotenGraph: KnotenGraph) { diff --git a/Programmierung2/src/Graphen/Kanten.java b/Programmierung2/src/Graphen/Kanten.java index 16beb6a..6561065 100644 --- a/Programmierung2/src/Graphen/Kanten.java +++ b/Programmierung2/src/Graphen/Kanten.java @@ -1,22 +1,61 @@ package Graphen; -public class Kanten { - //jede Kante verbindet zwei Knoten - Knote anfangsKnote; // mannheim - Knote endeKnote; // heidelberg - +public class Kanten { + // jede Kante verbindet zwei Knoten + private Knote anfangsKnote; + private Knote endeKnote; + private boolean UndirectedGraph; + private int gewicht; + // Kante verbindet zwei Knoten (Undirected Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, boolean UndirectedGraph) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; + this.UndirectedGraph = UndirectedGraph; + anfangsKnote.addKante(this); //speichert dann zu ihrem ArrayList diese Kante + endeKnote.addKante(this);//speichert dann auch zu ihrem ArrayList diese gleiche Kante + } + + // Kante verbindet eine Knote (Directed Graph) 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; } + // Kante verbindet eine Knoten und mit Gewicht (Weighted Directed Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, int gewicht) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; + //anfangsKnote.addkanteMitGewicht(this,gewicht); + } + + // Kante verbindet zwei Knoten und mit Gewicht (Weighted UnDirected Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, int gewicht, boolean UndirectedGraph) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; +// anfangsKnote.addkanteMitGewicht(this, gewicht); +// endeKnote.addkanteMitGewicht(this, gewicht); + this.UndirectedGraph = UndirectedGraph; + } + + public Knote getPartner(Knote k) { + return (k == anfangsKnote) ? endeKnote : anfangsKnote; + } + + public int getGewicht() { + return gewicht; + } + + public Knote getAnfangsKnote() { + return anfangsKnote; + } + + public Knote getEndeKnote() { + return endeKnote; + } + + + + } diff --git a/Programmierung2/src/Graphen/Knote.java b/Programmierung2/src/Graphen/Knote.java index d6c7f7f..1c99b2d 100644 --- a/Programmierung2/src/Graphen/Knote.java +++ b/Programmierung2/src/Graphen/Knote.java @@ -1,36 +1,39 @@ package Graphen; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class Knote { - String name; - ArrayList kantenList = new ArrayList<>(); + private String name; + private ArrayList kantenList = new ArrayList<>(); Knote(String name){ this.name = name; } + //add kante zu this (knote) public void addKante(Kanten k) { kantenList.add(k); } + public String getName() { return name; } - + public ArrayList getKantenList() { return kantenList; } - - ArrayList verbindeteKnoten; + public void getPartner() { ArrayList merker = getKantenList(); if (merker == null) return ; - verbindeteKnoten = new ArrayList<>(); + ArrayList verbindeteKnoten = new ArrayList<>(); for (Kanten m : merker) verbindeteKnoten.add(m.getPartner(this)); diff --git a/Programmierung2/src/Graphen/Test.java b/Programmierung2/src/Graphen/Test.java index 133bf62..b6f910b 100644 --- a/Programmierung2/src/Graphen/Test.java +++ b/Programmierung2/src/Graphen/Test.java @@ -4,15 +4,17 @@ public class Test { public static void main(String[] args) { Graph graph = new Graph(); + Knote mannheim = new Knote("Mannheim"); Knote heidelberg = new Knote("Heidelberg"); + Knote Maiz = new Knote("Maiz"); graph.addknoten(mannheim); graph.addknoten(heidelberg); + graph.addknoten(Maiz); - new Kanten(graph.getKnote("Mannheim"),graph.getKnote("Heidelberg")); - - mannheim.getPartner(); - heidelberg.getPartner(); + + Kanten k3 = new Kanten(graph.getKnote("Heidelberg"),graph.getKnote("Maiz"),25,true); + }