Initial sharing of project
This commit is contained in:
BIN
._.DS_Store
Executable file
BIN
._.DS_Store
Executable file
Binary file not shown.
71
ARBEIT.java
Executable file
71
ARBEIT.java
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* Baut Graphen auf und fuehrt die Tiefen- und Breitensuche aus.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class ARBEIT
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hat hier nichts zu tun.
|
||||||
|
*/
|
||||||
|
ARBEIT ()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void AusfuehrenAutobahn ()
|
||||||
|
{
|
||||||
|
GRAPH_MATRIX g;
|
||||||
|
g = new GRAPH_MATRIX (14);
|
||||||
|
|
||||||
|
g. KnotenEinfuegen ("A");
|
||||||
|
g. KnotenEinfuegen ("F");
|
||||||
|
g. KnotenEinfuegen ("FD");
|
||||||
|
g. KnotenEinfuegen ("HO");
|
||||||
|
g. KnotenEinfuegen ("KA");
|
||||||
|
g. KnotenEinfuegen ("LI");
|
||||||
|
g. KnotenEinfuegen ("M");
|
||||||
|
g. KnotenEinfuegen ("N");
|
||||||
|
g. KnotenEinfuegen ("PA");
|
||||||
|
g. KnotenEinfuegen ("R");
|
||||||
|
g. KnotenEinfuegen ("RO");
|
||||||
|
g. KnotenEinfuegen ("S");
|
||||||
|
g. KnotenEinfuegen ("UL");
|
||||||
|
g. KnotenEinfuegen ("W\u00DC");
|
||||||
|
|
||||||
|
g. KanteEinfuegen ("W\u00DC", "N", 104);
|
||||||
|
g. KanteEinfuegen ("N", "R", 80);
|
||||||
|
g. KanteEinfuegen ("HO", "W\u00DC", 192);
|
||||||
|
g. KanteEinfuegen ("HO", "N", 116);
|
||||||
|
g. KanteEinfuegen ("HO", "R", 166);
|
||||||
|
g. KanteEinfuegen ("FD", "W\u00DC", 98);
|
||||||
|
g. KanteEinfuegen ("M", "A", 64);
|
||||||
|
g. KanteEinfuegen ("M", "N", 163);
|
||||||
|
g. KanteEinfuegen ("M", "R", 117);
|
||||||
|
g. KanteEinfuegen ("M", "RO", 60);
|
||||||
|
g. KanteEinfuegen ("UL", "A", 59);
|
||||||
|
g. KanteEinfuegen ("UL", "W\u00DC", 165);
|
||||||
|
g. KanteEinfuegen ("UL", "LI", 126);
|
||||||
|
g. KanteEinfuegen ("UL", "S", 103);
|
||||||
|
g. KanteEinfuegen ("S", "KA", 53);
|
||||||
|
g. KanteEinfuegen ("S", "F", 127);
|
||||||
|
g. KanteEinfuegen ("R", "PA", 72);
|
||||||
|
g. KanteEinfuegen ("F", "W\u00DC", 131);
|
||||||
|
|
||||||
|
// Formatiertes Ausgeben der Adjazenzmatrix in der Konsole
|
||||||
|
System. out. println ("Matrix");
|
||||||
|
g. Ausgeben ();
|
||||||
|
System. out. println ();
|
||||||
|
//Tiefensuche mit Startknoten Muenchen
|
||||||
|
System. out. println ("Tiefensuche");
|
||||||
|
g. TiefenSuche ("M");
|
||||||
|
System. out. println ();
|
||||||
|
//Breitensuche mit Startknoten Muenchen
|
||||||
|
System. out. println ("Breitensuche");
|
||||||
|
g. BreitenSuche ("M");
|
||||||
|
}
|
||||||
|
}
|
||||||
195
GRAPH_MATRIX.java
Executable file
195
GRAPH_MATRIX.java
Executable file
@@ -0,0 +1,195 @@
|
|||||||
|
import Liste. *;
|
||||||
|
/**
|
||||||
|
* Verwaltet einen Graphen mit Hilfe einer Adjazenzmatrix.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class GRAPH_MATRIX
|
||||||
|
{
|
||||||
|
/** Feld mit den Knoten. */
|
||||||
|
private KNOTEN [] knoten;
|
||||||
|
/** Adjazenzmatrix */
|
||||||
|
private int [] [] matrix;
|
||||||
|
/** Zaehler fuer das Einfuegen der Knoten. */
|
||||||
|
private int anzahlKnoten;
|
||||||
|
/** Markierung fuer besuchte Knoten */
|
||||||
|
private boolean [] besucht;
|
||||||
|
|
||||||
|
/** Liste der gerade in Arbeit befindlichen Knoten der Breitensuche */
|
||||||
|
private LISTE offeneKnoten;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legt die Felder mit gegebener Groesse an.
|
||||||
|
* @param anzahl Anzahl der zu speichernden Knoten
|
||||||
|
*/
|
||||||
|
GRAPH_MATRIX (int anzahl)
|
||||||
|
{
|
||||||
|
knoten = new KNOTEN [anzahl];
|
||||||
|
matrix = new int [anzahl] [anzahl];
|
||||||
|
besucht = new boolean [anzahl];
|
||||||
|
anzahlKnoten = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Index des Knotens oder -1, wenn es keinen Knoten mit diesem Bezeichner gibt.
|
||||||
|
* @return Knotenindex oder -1
|
||||||
|
*/
|
||||||
|
private int KnotenNummerGeben (String bezeichner)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < anzahlKnoten; i++)
|
||||||
|
{
|
||||||
|
if (knoten [i]. BezeichnungGeben (). equals (bezeichner))
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fuegt einen neuen Knoten mit dem angegebenen Bezeichner ein.
|
||||||
|
* Falls das Feld voll ist oder der Bezeichner schon existiert, wird nichts eingefuegt.
|
||||||
|
* @param bezeichner Bezeichner des neuen Knoten
|
||||||
|
*/
|
||||||
|
void KnotenEinfuegen (String bezeichner)
|
||||||
|
{
|
||||||
|
if ((anzahlKnoten < knoten. length) && (KnotenNummerGeben (bezeichner) == -1))
|
||||||
|
{
|
||||||
|
knoten [anzahlKnoten] = new KNOTEN (bezeichner);
|
||||||
|
matrix [anzahlKnoten] [anzahlKnoten] = 0;
|
||||||
|
for (int i = 0; i < anzahlKnoten; i++)
|
||||||
|
{
|
||||||
|
matrix [i] [anzahlKnoten] = -1;
|
||||||
|
matrix [anzahlKnoten] [i] = -1;
|
||||||
|
}
|
||||||
|
anzahlKnoten += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fuegt eine neue Kante in den Graphen ein.
|
||||||
|
* @param von Bezeichner des Startknotens
|
||||||
|
* @param nach Bezeichner des Zielknotens
|
||||||
|
* @param gewichtung Gewicht der Kante
|
||||||
|
*/
|
||||||
|
void KanteEinfuegen (String von, String nach, int gewichtung)
|
||||||
|
{
|
||||||
|
int vonNummer;
|
||||||
|
int nachNummer;
|
||||||
|
vonNummer = KnotenNummerGeben (von);
|
||||||
|
nachNummer = KnotenNummerGeben (nach);
|
||||||
|
if ((vonNummer != -1) && (nachNummer != -1) && (vonNummer != nachNummer))
|
||||||
|
{
|
||||||
|
matrix [vonNummer] [nachNummer] = gewichtung;
|
||||||
|
matrix [nachNummer] [vonNummer] = gewichtung;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Adjazenzmatrix aus.
|
||||||
|
*/
|
||||||
|
void Ausgeben ()
|
||||||
|
{
|
||||||
|
int breite = 4;
|
||||||
|
String fueller = " ";
|
||||||
|
System. out. print (fueller);
|
||||||
|
for (int i = 0; i < anzahlKnoten; i++)
|
||||||
|
{
|
||||||
|
System. out. print (knoten [i]. BezFormatGeben (breite));
|
||||||
|
}
|
||||||
|
System. out. println ();
|
||||||
|
for (int zeile = 0; zeile < anzahlKnoten; zeile++)
|
||||||
|
{
|
||||||
|
System. out. print (knoten [zeile]. BezFormatGeben (breite));
|
||||||
|
for (int spalte = 0; spalte < anzahlKnoten; spalte++)
|
||||||
|
{
|
||||||
|
System. out. print ((matrix [zeile] [spalte] + fueller). substring (0, breite));
|
||||||
|
}
|
||||||
|
System. out. println ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erledigt die Aufgabe, einen Knoten zu besuchen.
|
||||||
|
* @param knotenNummer der zu besuchende Knoten
|
||||||
|
*/
|
||||||
|
private void Besuchen (int knotenNummer)
|
||||||
|
{
|
||||||
|
besucht [knotenNummer] = true;
|
||||||
|
System. out. print (knoten [knotenNummer]. BezeichnungGeben () + "; ");
|
||||||
|
|
||||||
|
for (int abzweigNummer = 0; abzweigNummer < anzahlKnoten; abzweigNummer ++)
|
||||||
|
{
|
||||||
|
if ((matrix [knotenNummer] [abzweigNummer] > 0) && (! besucht [abzweigNummer]))
|
||||||
|
{
|
||||||
|
Besuchen (abzweigNummer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System. out. println (knoten [knotenNummer]. BezeichnungGeben () + "(fertig);");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rahmen fuer die Tiefensuche.
|
||||||
|
* @param startKnoten Bezeichner des Startknotens
|
||||||
|
*/
|
||||||
|
void TiefenSuche (String startKnoten)
|
||||||
|
{
|
||||||
|
int startNummer;
|
||||||
|
startNummer = KnotenNummerGeben (startKnoten);
|
||||||
|
if (startNummer != -1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < anzahlKnoten; i++)
|
||||||
|
{
|
||||||
|
besucht [i] = false;
|
||||||
|
}
|
||||||
|
Besuchen (startNummer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Breitensuche.
|
||||||
|
* @param startKnoten Bezeichner des Startknotens
|
||||||
|
*/
|
||||||
|
void BreitenSuche (String startKnoten)
|
||||||
|
{
|
||||||
|
int startNummer;
|
||||||
|
int aktKnoten;
|
||||||
|
KNOTENINFO info;
|
||||||
|
startNummer = KnotenNummerGeben (startKnoten);
|
||||||
|
if (startNummer != -1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < anzahlKnoten; i++)
|
||||||
|
{
|
||||||
|
besucht [i] = false;
|
||||||
|
}
|
||||||
|
offeneKnoten = new LISTE ();
|
||||||
|
aktKnoten = startNummer;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
System. out. println (knoten [aktKnoten]. BezeichnungGeben ());
|
||||||
|
besucht [aktKnoten] = true;
|
||||||
|
for (int k = 0; k < anzahlKnoten; k++)
|
||||||
|
{
|
||||||
|
info = new KNOTENINFO (k);
|
||||||
|
if ((matrix [aktKnoten] [k] > 0) && (! besucht [k]) && (! offeneKnoten. Enthaelt (info)))
|
||||||
|
{
|
||||||
|
offeneKnoten. HintenEinfuegen (info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
info = (KNOTENINFO) offeneKnoten. AnfangEntfernen ();
|
||||||
|
if (info != null)
|
||||||
|
{
|
||||||
|
aktKnoten = info. KnotennummerGeben ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aktKnoten = -1;
|
||||||
|
}
|
||||||
|
} while (aktKnoten >= 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
43
KNOTEN.java
Executable file
43
KNOTEN.java
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* Verwaltet einen Knoten des Graphen.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class KNOTEN
|
||||||
|
{
|
||||||
|
|
||||||
|
/** Bezeichnung des Knoten */
|
||||||
|
private String bezeichnung;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legt den Bezeichner fest.
|
||||||
|
* @param bezeichnung die Bezeichnugn des Knoten
|
||||||
|
*/
|
||||||
|
KNOTEN (String bezeichnung)
|
||||||
|
{
|
||||||
|
this. bezeichnung = bezeichnung;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet die Bezeichnung des Knotens.
|
||||||
|
* @return Bezeichnung
|
||||||
|
*/
|
||||||
|
String BezeichnungGeben ()
|
||||||
|
{
|
||||||
|
return bezeichnung;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet die Bezeichnung des Knotens als String gegebener Laenge.
|
||||||
|
* @param laenge Länge der Ausgabe
|
||||||
|
* @return Bezeichnung
|
||||||
|
*/
|
||||||
|
String BezFormatGeben (int laenge)
|
||||||
|
{
|
||||||
|
return (bezeichnung + " "). substring (0, laenge);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
39
KNOTENINFO.java
Executable file
39
KNOTENINFO.java
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
/**
|
||||||
|
* Knoteninformation fuer die Listenverwaltung.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class KNOTENINFO implements Liste. DATENELEMENT
|
||||||
|
{
|
||||||
|
private int knotenNummer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legt die Information an.
|
||||||
|
* @param nummer Nummer des Knotens
|
||||||
|
*/
|
||||||
|
KNOTENINFO (int nummer)
|
||||||
|
{
|
||||||
|
knotenNummer = nummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet die Knotennumer.
|
||||||
|
* @return knotenNummer;
|
||||||
|
*/
|
||||||
|
int KnotennummerGeben ()
|
||||||
|
{
|
||||||
|
return knotenNummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet, ob das Datenelemnt den gleichen Schluesselwert hat wie das uebergebene Datenelement.
|
||||||
|
* @param d zu vergleichendes Datenelement
|
||||||
|
* return true, wenn die Schluesselwerte gleich sind
|
||||||
|
*/
|
||||||
|
public boolean SchluesselIstGleich (Liste. DATENELEMENT d)
|
||||||
|
{
|
||||||
|
return knotenNummer == ((KNOTENINFO) d). knotenNummer;
|
||||||
|
}
|
||||||
|
}
|
||||||
59
Liste/ABSCHLUSS.java
Executable file
59
Liste/ABSCHLUSS.java
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
package Liste;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abschlusselement der Liste.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class ABSCHLUSS extends LISTENELEMENT
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Der Konstruktor hat keine Arbeit
|
||||||
|
*/
|
||||||
|
ABSCHLUSS ()
|
||||||
|
{
|
||||||
|
super (); // Nur zur Dokumentation
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet das Datenelement des ersten Knotens zurück
|
||||||
|
* @return Datenelement des ersten Knotens
|
||||||
|
*/
|
||||||
|
DATENELEMENT AnfangGeben ()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Datenelement am Ende der Liste an.
|
||||||
|
* @param daten das neue Datenelement
|
||||||
|
*/
|
||||||
|
LISTENELEMENT HintenEinfuegen (DATENELEMENT daten)
|
||||||
|
{
|
||||||
|
return new KNOTEN (daten, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entfernt den Knoten mit dem angegebenen Element aus der Liste.
|
||||||
|
* @param d_raus das zu löschende Datenelement.
|
||||||
|
* @return (neuer) Nachfolger
|
||||||
|
*/
|
||||||
|
LISTENELEMENT KnotenEntfernen (DATENELEMENT d_raus)
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet, ob die Liste ein Datenelement mit dem angegebenen Schlüssel enthält.
|
||||||
|
* @param d Datenelement mit den zu suchenden Schlüsselwert
|
||||||
|
* @return true, wenn das Datenelement gefunden wurde
|
||||||
|
*/
|
||||||
|
boolean Enthaelt (DATENELEMENT d)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
19
Liste/DATENELEMENT.java
Executable file
19
Liste/DATENELEMENT.java
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
package Liste;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beschreibt das in der Warteschlange verwaltete Datenelement.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface DATENELEMENT
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Testet, ob das Datenelemnt den gleichen Schlüsselwert hat wie das übergebene Datenelement.
|
||||||
|
* @param d zu vergleichendes Datenelement
|
||||||
|
* return true, wernn dei Schlüsselwerte gleich sind
|
||||||
|
*/
|
||||||
|
boolean SchluesselIstGleich (DATENELEMENT d);
|
||||||
|
}
|
||||||
81
Liste/KNOTEN.java
Executable file
81
Liste/KNOTEN.java
Executable file
@@ -0,0 +1,81 @@
|
|||||||
|
package Liste;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verwaltet einen Knoten der Warteschlange.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
class KNOTEN extends LISTENELEMENT
|
||||||
|
{
|
||||||
|
/** Referenz auf den Nachfolger */
|
||||||
|
private LISTENELEMENT nachfolger;
|
||||||
|
/** Referenz auf das verwaltete Datenelement */
|
||||||
|
private DATENELEMENT daten;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legt einen Knoten mit angegebenen Nachfolger und angegebenem Datenelement an.
|
||||||
|
* @param daten das verwaltete Datenelement.
|
||||||
|
* @param nachfolger der Nachfolger des Knotens
|
||||||
|
*/
|
||||||
|
KNOTEN (DATENELEMENT daten, LISTENELEMENT nachfolger)
|
||||||
|
{
|
||||||
|
this. daten = daten;
|
||||||
|
this. nachfolger = nachfolger;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet das Datenelement des ersten Knotens zurück
|
||||||
|
* @return Datenelement des ersten Knotens
|
||||||
|
*/
|
||||||
|
DATENELEMENT AnfangGeben ()
|
||||||
|
{
|
||||||
|
return daten;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Datenelement am Ende der Liste an.
|
||||||
|
* @param daten das neue Datenelement
|
||||||
|
*/
|
||||||
|
LISTENELEMENT HintenEinfuegen (DATENELEMENT daten)
|
||||||
|
{
|
||||||
|
nachfolger = nachfolger. HintenEinfuegen (daten);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entfernt den Knoten mit dem angegebenen Element aus der Liste.
|
||||||
|
* @param d_raus das zu löschende Datenelement.
|
||||||
|
* @return (neuer) Nachfolger
|
||||||
|
*/
|
||||||
|
LISTENELEMENT KnotenEntfernen (DATENELEMENT d_raus)
|
||||||
|
{
|
||||||
|
if (daten == d_raus)
|
||||||
|
{
|
||||||
|
return nachfolger;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nachfolger = nachfolger. KnotenEntfernen (d_raus);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet, ob die Liste ein Datenelement mit dem angegebenen Schlüssel enthält.
|
||||||
|
* @param d Datenelement mit den zu suchenden Schlüsselwert
|
||||||
|
* @return true, wenn das Datenelement gefunden wurde
|
||||||
|
*/
|
||||||
|
boolean Enthaelt (DATENELEMENT d)
|
||||||
|
{
|
||||||
|
if (daten. SchluesselIstGleich (d))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return nachfolger. Enthaelt (d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
56
Liste/LISTE.java
Executable file
56
Liste/LISTE.java
Executable file
@@ -0,0 +1,56 @@
|
|||||||
|
package Liste;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verwaltet eine Liste von Datenelementen
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class LISTE
|
||||||
|
{
|
||||||
|
/** Referenz auf den ersten Knoten der Liste */
|
||||||
|
private LISTENELEMENT anfang;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Legt eine leere Liste an.
|
||||||
|
*/
|
||||||
|
public LISTE ()
|
||||||
|
{
|
||||||
|
anfang = new ABSCHLUSS ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Datenelement am Ende der Liste an.
|
||||||
|
* @param daten das neue Datenelement
|
||||||
|
*/
|
||||||
|
public void HintenEinfuegen (DATENELEMENT daten)
|
||||||
|
{
|
||||||
|
anfang = anfang. HintenEinfuegen (daten);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entfernt das erste Datenelement aus der Warteschlange.
|
||||||
|
* @return erstes Datenelement
|
||||||
|
*/
|
||||||
|
public DATENELEMENT AnfangEntfernen ()
|
||||||
|
{
|
||||||
|
DATENELEMENT resultat;
|
||||||
|
resultat = anfang. AnfangGeben ();
|
||||||
|
if (resultat != null)
|
||||||
|
{
|
||||||
|
anfang = anfang. KnotenEntfernen (resultat);
|
||||||
|
}
|
||||||
|
return resultat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet, ob die Liste ein Datenelement mit dem angegebenen Schlüssel enthält.
|
||||||
|
* @param d Datenelement mit den zu suchenden Schlüsselwert
|
||||||
|
* @return true, wenn das Datenelement gefunden wurde
|
||||||
|
*/
|
||||||
|
public boolean Enthaelt (DATENELEMENT d)
|
||||||
|
{
|
||||||
|
return anfang. Enthaelt (d);
|
||||||
|
}
|
||||||
|
}
|
||||||
40
Liste/LISTENELEMENT.java
Executable file
40
Liste/LISTENELEMENT.java
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
package Liste;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verwaltet ein allgemeines Element der Warteschlange.
|
||||||
|
*
|
||||||
|
* @author Albert Wiedemann
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class LISTENELEMENT
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet das Datenelement des ersten Knotens zurück
|
||||||
|
* @return Datenelement des ersten Knotens
|
||||||
|
*/
|
||||||
|
abstract DATENELEMENT AnfangGeben ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Datenelement am Ende der Liste an.
|
||||||
|
* @param daten das neue Datenelement
|
||||||
|
*/
|
||||||
|
abstract LISTENELEMENT HintenEinfuegen (DATENELEMENT daten);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entfernt den Knoten mit dem angegebenen Element aus der Liste.
|
||||||
|
* @param d_raus das zu löschende Datenelement.
|
||||||
|
* @return (neuer) Nachfolger
|
||||||
|
*/
|
||||||
|
abstract LISTENELEMENT KnotenEntfernen (DATENELEMENT d_raus);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Meldet, ob die Liste ein Datenelement mit dem angegebenen Schlüssel enthält.
|
||||||
|
* @param d Datenelement mit den zu suchenden Schlüsselwert
|
||||||
|
* @return true, wenn das Datenelement gefunden wurde
|
||||||
|
*/
|
||||||
|
abstract boolean Enthaelt (DATENELEMENT d);
|
||||||
|
|
||||||
|
}
|
||||||
97
Liste/bluej.pkg
Executable file
97
Liste/bluej.pkg
Executable file
@@ -0,0 +1,97 @@
|
|||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=LISTENELEMENT
|
||||||
|
dependency1.to=DATENELEMENT
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency10.from=KNOTEN
|
||||||
|
dependency10.to=ABSCHLUSS
|
||||||
|
dependency10.type=UsesDependency
|
||||||
|
dependency2.from=ABSCHLUSS
|
||||||
|
dependency2.to=DATENELEMENT
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=ABSCHLUSS
|
||||||
|
dependency3.to=KNOTEN
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
dependency4.from=LISTE
|
||||||
|
dependency4.to=DATENELEMENT
|
||||||
|
dependency4.type=UsesDependency
|
||||||
|
dependency5.from=LISTE
|
||||||
|
dependency5.to=LISTENELEMENT
|
||||||
|
dependency5.type=UsesDependency
|
||||||
|
dependency6.from=LISTE
|
||||||
|
dependency6.to=ABSCHLUSS
|
||||||
|
dependency6.type=UsesDependency
|
||||||
|
dependency7.from=KNOTEN
|
||||||
|
dependency7.to=DATENELEMENT
|
||||||
|
dependency7.type=UsesDependency
|
||||||
|
dependency8.from=ABSCHLUSS
|
||||||
|
dependency8.to=LISTENELEMENT
|
||||||
|
dependency8.type=UsesDependency
|
||||||
|
dependency9.from=KNOTEN
|
||||||
|
dependency9.to=LISTENELEMENT
|
||||||
|
dependency9.type=UsesDependency
|
||||||
|
package.editor.height=400
|
||||||
|
package.editor.width=560
|
||||||
|
package.editor.x=596
|
||||||
|
package.editor.y=159
|
||||||
|
package.numDependencies=10
|
||||||
|
package.numTargets=5
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
target1.editor.height=700
|
||||||
|
target1.editor.width=900
|
||||||
|
target1.editor.x=0
|
||||||
|
target1.editor.y=22
|
||||||
|
target1.height=50
|
||||||
|
target1.name=DATENELEMENT
|
||||||
|
target1.naviview.expanded=true
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=InterfaceTarget
|
||||||
|
target1.width=120
|
||||||
|
target1.x=100
|
||||||
|
target1.y=300
|
||||||
|
target2.editor.height=700
|
||||||
|
target2.editor.width=900
|
||||||
|
target2.editor.x=0
|
||||||
|
target2.editor.y=22
|
||||||
|
target2.height=50
|
||||||
|
target2.name=LISTENELEMENT
|
||||||
|
target2.naviview.expanded=true
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=AbstractTarget
|
||||||
|
target2.width=120
|
||||||
|
target2.x=190
|
||||||
|
target2.y=150
|
||||||
|
target3.editor.height=700
|
||||||
|
target3.editor.width=900
|
||||||
|
target3.editor.x=0
|
||||||
|
target3.editor.y=22
|
||||||
|
target3.height=50
|
||||||
|
target3.name=ABSCHLUSS
|
||||||
|
target3.showInterface=false
|
||||||
|
target3.type=ClassTarget
|
||||||
|
target3.width=100
|
||||||
|
target3.x=340
|
||||||
|
target3.y=70
|
||||||
|
target4.editor.height=700
|
||||||
|
target4.editor.width=900
|
||||||
|
target4.editor.x=0
|
||||||
|
target4.editor.y=22
|
||||||
|
target4.height=50
|
||||||
|
target4.name=LISTE
|
||||||
|
target4.naviview.expanded=true
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=80
|
||||||
|
target4.x=10
|
||||||
|
target4.y=210
|
||||||
|
target5.editor.height=700
|
||||||
|
target5.editor.width=900
|
||||||
|
target5.editor.x=0
|
||||||
|
target5.editor.y=22
|
||||||
|
target5.height=50
|
||||||
|
target5.name=KNOTEN
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=80
|
||||||
|
target5.x=440
|
||||||
|
target5.y=250
|
||||||
97
Liste/package.bluej
Executable file
97
Liste/package.bluej
Executable file
@@ -0,0 +1,97 @@
|
|||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=LISTENELEMENT
|
||||||
|
dependency1.to=DATENELEMENT
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency10.from=KNOTEN
|
||||||
|
dependency10.to=ABSCHLUSS
|
||||||
|
dependency10.type=UsesDependency
|
||||||
|
dependency2.from=ABSCHLUSS
|
||||||
|
dependency2.to=DATENELEMENT
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=ABSCHLUSS
|
||||||
|
dependency3.to=KNOTEN
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
dependency4.from=LISTE
|
||||||
|
dependency4.to=DATENELEMENT
|
||||||
|
dependency4.type=UsesDependency
|
||||||
|
dependency5.from=LISTE
|
||||||
|
dependency5.to=LISTENELEMENT
|
||||||
|
dependency5.type=UsesDependency
|
||||||
|
dependency6.from=LISTE
|
||||||
|
dependency6.to=ABSCHLUSS
|
||||||
|
dependency6.type=UsesDependency
|
||||||
|
dependency7.from=KNOTEN
|
||||||
|
dependency7.to=DATENELEMENT
|
||||||
|
dependency7.type=UsesDependency
|
||||||
|
dependency8.from=ABSCHLUSS
|
||||||
|
dependency8.to=LISTENELEMENT
|
||||||
|
dependency8.type=UsesDependency
|
||||||
|
dependency9.from=KNOTEN
|
||||||
|
dependency9.to=LISTENELEMENT
|
||||||
|
dependency9.type=UsesDependency
|
||||||
|
package.editor.height=400
|
||||||
|
package.editor.width=560
|
||||||
|
package.editor.x=596
|
||||||
|
package.editor.y=159
|
||||||
|
package.numDependencies=10
|
||||||
|
package.numTargets=5
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
target1.editor.height=700
|
||||||
|
target1.editor.width=900
|
||||||
|
target1.editor.x=0
|
||||||
|
target1.editor.y=22
|
||||||
|
target1.height=50
|
||||||
|
target1.name=DATENELEMENT
|
||||||
|
target1.naviview.expanded=true
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=InterfaceTarget
|
||||||
|
target1.width=120
|
||||||
|
target1.x=100
|
||||||
|
target1.y=300
|
||||||
|
target2.editor.height=700
|
||||||
|
target2.editor.width=900
|
||||||
|
target2.editor.x=0
|
||||||
|
target2.editor.y=22
|
||||||
|
target2.height=50
|
||||||
|
target2.name=LISTENELEMENT
|
||||||
|
target2.naviview.expanded=true
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=AbstractTarget
|
||||||
|
target2.width=120
|
||||||
|
target2.x=190
|
||||||
|
target2.y=150
|
||||||
|
target3.editor.height=700
|
||||||
|
target3.editor.width=900
|
||||||
|
target3.editor.x=0
|
||||||
|
target3.editor.y=22
|
||||||
|
target3.height=50
|
||||||
|
target3.name=ABSCHLUSS
|
||||||
|
target3.showInterface=false
|
||||||
|
target3.type=ClassTarget
|
||||||
|
target3.width=100
|
||||||
|
target3.x=340
|
||||||
|
target3.y=70
|
||||||
|
target4.editor.height=700
|
||||||
|
target4.editor.width=900
|
||||||
|
target4.editor.x=0
|
||||||
|
target4.editor.y=22
|
||||||
|
target4.height=50
|
||||||
|
target4.name=LISTE
|
||||||
|
target4.naviview.expanded=true
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=80
|
||||||
|
target4.x=10
|
||||||
|
target4.y=210
|
||||||
|
target5.editor.height=700
|
||||||
|
target5.editor.width=900
|
||||||
|
target5.editor.x=0
|
||||||
|
target5.editor.y=22
|
||||||
|
target5.height=50
|
||||||
|
target5.name=KNOTEN
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=80
|
||||||
|
target5.x=440
|
||||||
|
target5.y=250
|
||||||
12
README.TXT
Executable file
12
README.TXT
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
------------------------------------------------------------------------
|
||||||
|
This is the project README file. Here, you should describe your project.
|
||||||
|
Tell the reader (someone who does not know anything about this project)
|
||||||
|
all he/she needs to know. The comments should usually include at least:
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROJECT TITLE:
|
||||||
|
PURPOSE OF PROJECT:
|
||||||
|
VERSION or DATE:
|
||||||
|
HOW TO START THIS PROJECT:
|
||||||
|
AUTHORS:
|
||||||
|
USER INSTRUCTIONS:
|
||||||
72
bluej.pkg
Executable file
72
bluej.pkg
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=ARBEIT
|
||||||
|
dependency1.to=GRAPH_MATRIX
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency2.from=GRAPH_MATRIX
|
||||||
|
dependency2.to=KNOTEN
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=GRAPH_MATRIX
|
||||||
|
dependency3.to=KNOTENINFO
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
editor.fx.0.height=0
|
||||||
|
editor.fx.0.width=0
|
||||||
|
editor.fx.0.x=0
|
||||||
|
editor.fx.0.y=0
|
||||||
|
objectbench.height=93
|
||||||
|
objectbench.width=776
|
||||||
|
package.divider.horizontal=0.6
|
||||||
|
package.divider.vertical=0.8
|
||||||
|
package.editor.height=393
|
||||||
|
package.editor.width=649
|
||||||
|
package.editor.x=97
|
||||||
|
package.editor.y=99
|
||||||
|
package.frame.height=600
|
||||||
|
package.frame.width=800
|
||||||
|
package.numDependencies=3
|
||||||
|
package.numTargets=5
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
project.charset=windows-1252
|
||||||
|
readme.height=60
|
||||||
|
readme.name=@README
|
||||||
|
readme.width=49
|
||||||
|
readme.x=10
|
||||||
|
readme.y=10
|
||||||
|
target1.height=50
|
||||||
|
target1.name=GRAPH_MATRIX
|
||||||
|
target1.naviview.expanded=true
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=ClassTarget
|
||||||
|
target1.width=140
|
||||||
|
target1.x=70
|
||||||
|
target1.y=140
|
||||||
|
target2.height=50
|
||||||
|
target2.name=ARBEIT
|
||||||
|
target2.naviview.expanded=true
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=ClassTarget
|
||||||
|
target2.width=80
|
||||||
|
target2.x=290
|
||||||
|
target2.y=220
|
||||||
|
target3.height=62
|
||||||
|
target3.name=Liste
|
||||||
|
target3.type=PackageTarget
|
||||||
|
target3.width=80
|
||||||
|
target3.x=60
|
||||||
|
target3.y=10
|
||||||
|
target4.height=50
|
||||||
|
target4.name=KNOTEN
|
||||||
|
target4.naviview.expanded=false
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=90
|
||||||
|
target4.x=330
|
||||||
|
target4.y=80
|
||||||
|
target5.height=50
|
||||||
|
target5.name=KNOTENINFO
|
||||||
|
target5.naviview.expanded=true
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=120
|
||||||
|
target5.x=190
|
||||||
|
target5.y=300
|
||||||
72
package.bluej
Executable file
72
package.bluej
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=ARBEIT
|
||||||
|
dependency1.to=GRAPH_MATRIX
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency2.from=GRAPH_MATRIX
|
||||||
|
dependency2.to=KNOTEN
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=GRAPH_MATRIX
|
||||||
|
dependency3.to=KNOTENINFO
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
editor.fx.0.height=0
|
||||||
|
editor.fx.0.width=0
|
||||||
|
editor.fx.0.x=0
|
||||||
|
editor.fx.0.y=0
|
||||||
|
objectbench.height=93
|
||||||
|
objectbench.width=776
|
||||||
|
package.divider.horizontal=0.6
|
||||||
|
package.divider.vertical=0.8
|
||||||
|
package.editor.height=393
|
||||||
|
package.editor.width=649
|
||||||
|
package.editor.x=97
|
||||||
|
package.editor.y=99
|
||||||
|
package.frame.height=600
|
||||||
|
package.frame.width=800
|
||||||
|
package.numDependencies=3
|
||||||
|
package.numTargets=5
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
project.charset=windows-1252
|
||||||
|
readme.height=60
|
||||||
|
readme.name=@README
|
||||||
|
readme.width=49
|
||||||
|
readme.x=10
|
||||||
|
readme.y=10
|
||||||
|
target1.height=50
|
||||||
|
target1.name=GRAPH_MATRIX
|
||||||
|
target1.naviview.expanded=true
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=ClassTarget
|
||||||
|
target1.width=140
|
||||||
|
target1.x=70
|
||||||
|
target1.y=140
|
||||||
|
target2.height=50
|
||||||
|
target2.name=ARBEIT
|
||||||
|
target2.naviview.expanded=true
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=ClassTarget
|
||||||
|
target2.width=80
|
||||||
|
target2.x=290
|
||||||
|
target2.y=220
|
||||||
|
target3.height=62
|
||||||
|
target3.name=Liste
|
||||||
|
target3.type=PackageTarget
|
||||||
|
target3.width=80
|
||||||
|
target3.x=60
|
||||||
|
target3.y=10
|
||||||
|
target4.height=50
|
||||||
|
target4.name=KNOTEN
|
||||||
|
target4.naviview.expanded=false
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.width=90
|
||||||
|
target4.x=330
|
||||||
|
target4.y=80
|
||||||
|
target5.height=50
|
||||||
|
target5.name=KNOTENINFO
|
||||||
|
target5.naviview.expanded=true
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.width=120
|
||||||
|
target5.x=190
|
||||||
|
target5.y=300
|
||||||
Reference in New Issue
Block a user