der blaue ist krasse als der gelbe
parent
b284280524
commit
d19d82d0da
|
@ -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;}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue