Class Adjazenzliste

java.lang.Object
  extended byAdjazenzliste
Direct Known Subclasses:
BellmanFordMoore, Dijkstra

public class Adjazenzliste
extends java.lang.Object

Für die Verwaltung der Adjazenzliste wird vorrausgesetzt, dass die Knoten alle mit 0 starten und mit einser Schritten also die Reihe 0,1,2,3,... enthält. Dieser Umstand vereinfacht die Verwaltung und verbessert die Performance, da nur der Index des Arrays angesprungen werden muss, um die Kanten zu diesem Knoten zu erhalten. Hat ein Knoten keine Kanten, so ist die Kantenliste leer. Eine Kante darf nur einmal enthalten sein.


Field Summary
 java.util.Vector[] adlist
           
 
Constructor Summary
Adjazenzliste()
          Konstruktor, der eine leere Adjazenzliste erzeugt.
 
Method Summary
 void add(Edge e)
          Fügt eine Kante e in die Adjazenzliste ein.
 void add(int n)
          Fügt einen Knoten in die Adjazenzliste ein.
 void add(Node n)
          Fügt einen Knoten in die Adjazenzliste ein.
 void add(Node tail, Node head, int cost)
          fügt eine Kante in die Adjazenzliste ein, die durch die Knoten tail (Schwanz, bzw.
 boolean contains(Edge e)
          Prüft, ob die Kante in der Adjazenzliste vorhanden ist.
 boolean contains(int n)
          Prüft, ob ein Knoten (durch einen Integer Wert repräsentiert) in der Adjazenzliste vorkommt (true) oder nicht (false).
 boolean contains(Node n)
          Prüft, ob ein Knoten (Node Object) in der Adjazenzliste vorkommt (true) oder nicht (false).
 boolean contains(java.lang.Object o, int n)
          Prüft, ob ein (Object) in der Kantenliste von n vorkommt (true) oder nicht (false).
 Edge find(int tail, int head)
          überprüft, ob eine Kante in der Adjazenzliste enthalten ist, die von tail nach head geht.
 java.util.Vector[] getAdlist()
          Gibt eine Referenz auf das Adjazenzlistenarray zurück.
 int getCost(Node tail, Node head)
          Gibt die Kosten einer Kante zurück, die durch die Knoten tail und head bestimmt ist.
 java.util.Vector getEdgesWithTail(int tailvalue)
          gibt den Kantenvetor zu dem vorgegebenen Knoten (tail durch Integer Wert dargestellt) zurück.
 java.util.Vector getEdgesWithTail(Node tail)
          gibt den Kantenvetor zu dem vorgegebenen Knoten (tail) zurück.
 int getMaxNodeNumber()
          Gibt die höchste Knotennummer zurück.
 java.util.Vector getNodeVector()
          Gibt einen Vector zurück, der die Knoten enthält, die in der Adjazenzliste enthalten sind.
static void main(java.lang.String[] args)
          Main enthält nur Routinen, die die Funktionalität der Klasse testen und zeigen.
 int ordnung()
          Ermittelt die Ordnung des Graphen, der durch diese Adjazenzliste dargestellt wird.
 void readFrom(java.lang.String filename)
          Liest aus der Datei filename die Adjazenzliste.
 void remove(Edge e)
          Entfernt eine Kante aus der Kantenliste zu der Kante Edge, wobei die Kosten nicht geprüft werden.
 void remove(int n)
          Löscht einen Knoten, den der Integerwert n representiert, indem die Kantenliste auf null gesetzt wird.
 void remove(Node n)
          Löscht einen Knoten, indem die Kantenliste auf null gesetzt wird.
 int size()
          Ermittelt die Größe des Graphen.
 void sortEdgeList(int node)
          Sortiert die Kantenliste zu Knoten node.
 void sortEdgeList(Node node)
          Sortiert die Kantenliste zu Knoten node.
 void sortEdgeLists()
          Sortiert die Kantenlisten zu allen Knoten.
 java.lang.String toHtml()
          Gibt einen String in HTML Syntax zurück.
 java.lang.String toString()
          gibt die Adjazenzliste in ein String aus.
 void writeAsText(java.lang.String filename)
           
 void writeTo(java.lang.String filename)
          Schreibt die Adjazenzliste in den Dateinamen 'filename'.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

adlist

public java.util.Vector[] adlist
Constructor Detail

Adjazenzliste

public Adjazenzliste()
Konstruktor, der eine leere Adjazenzliste erzeugt. In der leeren Adjazenzliste ist standardmäßig der Knoten 0 schon eingefügt.

Method Detail

contains

public boolean contains(Edge e)
Prüft, ob die Kante in der Adjazenzliste vorhanden ist.
"false" bedeutet, dass die Kante nicht in der Adjanzenzliste vorhanden ist.
"true" bedeutet, dass die Kante in der Adjazenzliste enthalten ist.


find

public Edge find(int tail,
                 int head)
überprüft, ob eine Kante in der Adjazenzliste enthalten ist, die von tail nach head geht. Ist die Kante enthalten, wird eine Kopie der Kante zurückgegeben. Wurde die Kante nicht gefunden wird null zurückgegeben.


contains

public boolean contains(int n)
Prüft, ob ein Knoten (durch einen Integer Wert repräsentiert) in der Adjazenzliste vorkommt (true) oder nicht (false).


getCost

public int getCost(Node tail,
                   Node head)
Gibt die Kosten einer Kante zurück, die durch die Knoten tail und head bestimmt ist.


contains

public boolean contains(Node n)
Prüft, ob ein Knoten (Node Object) in der Adjazenzliste vorkommt (true) oder nicht (false).


contains

public boolean contains(java.lang.Object o,
                        int n)
Prüft, ob ein (Object) in der Kantenliste von n vorkommt (true) oder nicht (false).


getEdgesWithTail

public java.util.Vector getEdgesWithTail(int tailvalue)
gibt den Kantenvetor zu dem vorgegebenen Knoten (tail durch Integer Wert dargestellt) zurück.


getEdgesWithTail

public java.util.Vector getEdgesWithTail(Node tail)
gibt den Kantenvetor zu dem vorgegebenen Knoten (tail) zurück.


add

public void add(Node tail,
                Node head,
                int cost)
fügt eine Kante in die Adjazenzliste ein, die durch die Knoten tail (Schwanz, bzw. Quelle) und head (Kopf, bzw. Ziel) vorgegeben ist


add

public void add(Edge e)
Fügt eine Kante e in die Adjazenzliste ein.


add

public void add(int n)
Fügt einen Knoten in die Adjazenzliste ein. Die Kantenliste des Knotens, der durch die Zahl n dargestellt, ist ein leerer Vector.


add

public void add(Node n)
Fügt einen Knoten in die Adjazenzliste ein. Die Kantenliste des Knotens n hat ist ein leerer Vector.


remove

public void remove(Edge e)
Entfernt eine Kante aus der Kantenliste zu der Kante Edge, wobei die Kosten nicht geprüft werden.


remove

public void remove(Node n)
Löscht einen Knoten, indem die Kantenliste auf null gesetzt wird. Weiterhin werden alle Kanten, die den Knoten beinhalten gelöscht.


remove

public void remove(int n)
Löscht einen Knoten, den der Integerwert n representiert, indem die Kantenliste auf null gesetzt wird. Weiterhin werden alle Kanten, zu und von dem Knoten gelöscht.


getMaxNodeNumber

public int getMaxNodeNumber()
Gibt die höchste Knotennummer zurück. Sind z.B. die Knoten 0,1,2,6,7,8 in der Adjazenzliste enthalten, dann wird die 8 zurückgegeben. Diese Methode gibt nicht die Anzahl der Knoten zurück!


getNodeVector

public java.util.Vector getNodeVector()
Gibt einen Vector zurück, der die Knoten enthält, die in der Adjazenzliste enthalten sind.


toString

public java.lang.String toString()
gibt die Adjazenzliste in ein String aus. Beispiel:
0: [ 1,3 ]
1: [ 2,4 3,5 ]


ordnung

public int ordnung()
Ermittelt die Ordnung des Graphen, der durch diese Adjazenzliste dargestellt wird. Ergebnis ist also die Anzahl der Knoten des Graphen.


size

public int size()
Ermittelt die Größe des Graphen. Der Rückgabewert entspricht der Anzahl der Kanten.


toHtml

public java.lang.String toHtml()
Gibt einen String in HTML Syntax zurück.


writeTo

public void writeTo(java.lang.String filename)
Schreibt die Adjazenzliste in den Dateinamen 'filename'. Die Ausgabe erfolgt als Textdatei. Das Ergebnis von toString() sollte mit dem Dateninhalt identisch sein.


writeAsText

public void writeAsText(java.lang.String filename)

readFrom

public void readFrom(java.lang.String filename)
Liest aus der Datei filename die Adjazenzliste. Diese ist so abgescheichert, dass für jeden Knoten die Länge der Kantenliste, bzw. die Anzahl der Kanten, abgespeichert ist. Anschliessend folgen dann Kantenelemente.
Beispiel: , <1. Kante Knoten 0>, <2. Kante Knoten 0>,...,,, <1. Kante Knoten 0>, <2. Kante Knoten 0>,...


getAdlist

public java.util.Vector[] getAdlist()
Gibt eine Referenz auf das Adjazenzlistenarray zurück.


sortEdgeList

public void sortEdgeList(int node)
Sortiert die Kantenliste zu Knoten node.


sortEdgeList

public void sortEdgeList(Node node)
Sortiert die Kantenliste zu Knoten node.


sortEdgeLists

public void sortEdgeLists()
Sortiert die Kantenlisten zu allen Knoten.


main

public static void main(java.lang.String[] args)
Main enthält nur Routinen, die die Funktionalität der Klasse testen und zeigen.