der blaue ist krasse als der gelbe

master
SimonDHG 2024-01-31 10:59:49 +01:00
parent b284280524
commit d19d82d0da
4 changed files with 145 additions and 0 deletions

20
Edge.java Normal file
View File

@ -0,0 +1,20 @@
public class Edge
{
private Node anfang;
private Node ende;
private int wert;
private boolean gerichtet;
public Edge(Node a, Node e, int w, boolean r){
this.anfang = a;
this.ende = e;
this.wert = w ;
this.gerichtet = r;
}
public Node getAnfang(){return this.anfang;}
public Node getEnde(){return this.ende;}
public int getWert(){return this.wert;}
public boolean istGerichtet(){return this.gerichtet;}
}

50
Graph.java Normal file
View File

@ -0,0 +1,50 @@
import java.util.ArrayList;
public class Graph
{
private ArrayList<Node> nodes;
private ArrayList<Edge> edges;
public Graph(){
this.nodes = new ArrayList<Node> ();
this.edges = new ArrayList<Edge>();
}
public void addNode(Node n) {
this.nodes.add(n);
}
public void addNode(int nr){
this.nodes.add(new Node(nr));
}
public void addEdge(Edge e){
this.edges.add(e);
e.getAnfang().addEdge(e);
e.getEnde().addEdge(e);
}
public void addEdge(int a, int e, int w, boolean g){
Node an = null;
Node en = null;
for (int i = 0; i < this.nodes.size(); i++){
if (this.nodes.get(i).getNumber() == a){
an = this.nodes.get(i);
}
if (this.nodes.get(i).getNumber()== e){
en = this.nodes.get(i);
}
}
if (an == null || en == null){
return;
}
this.addEdge(new Edge(an, en, w, g));
}
public Node getNode(int nr){
for (Node n : this.nodes){
if (n.getNumber() == nr){
return n;
}
}
return null;
}
}

29
Node.java Normal file
View File

@ -0,0 +1,29 @@
import java.util.ArrayList;
public class Node
{
private int number;
private ArrayList<Edge> edges;
public Node(int n){
this.number = n;
this.edges = new ArrayList<Edge>();
}
public int getNumber (){return this.number;}
public void addEdge(Edge e){
this.edges.add(e);
}
public ArrayList<Node> getTargets(){
ArrayList<Node> t= new ArrayList<Node>();
for (Edge e : this.edges){
if(e.getAnfang()== this){
t.add(e.getEnde());
}
else if (!e.istGerichtet()){
t.add(e.getAnfang());
}
}
return t;
}
}

46
test.java Normal file
View File

@ -0,0 +1,46 @@
import java.util.ArrayList;
public class test
{
public static void test(){
Graph g = new Graph();
for (int i = 1; i <= 22; i++){
g.addNode(i);
}
g.addEdge(1,4,1,false);
g.addEdge(1,2,1,false);
g.addEdge(1,5,1,false);
g.addEdge(2,3,1,false);
g.addEdge(2,6,1,false);
g.addEdge(2,9,1,false);
g.addEdge(3,7,1,false);
g.addEdge(4,8,1,false);
g.addEdge(5,8,1,false);
g.addEdge(5,12,1,false);
g.addEdge(5,11,1,false);
g.addEdge(5,10,1,false);
g.addEdge(6,13,1,false);
g.addEdge(7,18,1,false);
g.addEdge(7,14,1,false);
g.addEdge(7,17,1,false);
g.addEdge(9,10,1,false);
g.addEdge(11,15,1,false);
g.addEdge(11,16,1,false);
g.addEdge(13,19,1,false);
g.addEdge(13,16,1,false);
g.addEdge(14,17,1,false);
g.addEdge(15,16,1,false);
g.addEdge(15,22,1,false);
g.addEdge(16,20,1,false);
g.addEdge(21,22,1,false);
Node n = g.getNode(16);
ArrayList<Node> targets = n.getTargets();
for (Node target : targets){
System.out.println(target.getNumber());
}
}
}