Circle.java
/**
* Liste zu einem Zirkel verknüpft
*
* @author Hennchen
* @version 2007-06-05
*/
public class Circle {
/*
* Innere Klasse, die eine Person im Kreis beschreibt.
*/
private class Person {
//Nummer der Person
int number;
//Verweis auf nächste Person
Person next;
/**
* Erzeugt ein neues Element. Erwartet 2 Parameter
*
* @param nr Die Nummer
* @param ct Die nachfolgende Person
* */
Person (int nr, Person next) {
this.number = nr;
this.next = next;
}
}
//Person bei der immer gestartet wird.
Person start = null;
/**
* Liefert true zurück,
* wenn keine start-Person vorhanden ist. Das heißt
* der Kreis ist dann leer.
*/
public boolean isEmpty() {
return start == null;
}
/**
* Gibt eine textuelle Repräsentation der Elemente
* der zirkulären Liste zurück.
*/
public String toString() {
//Falls leere Liste, wird ein leerer String zurückgegeben.
if (isEmpty()) return "";
// StringBuffer zum zusammenfügen der Listenelemente
StringBuffer returnString = new StringBuffer();
//aktuelle Person ist start Person.
Person actualPerson = start;
do {
//füge Nummer der Person an
returnString.append(actualPerson.number);
returnString.append(" ");
//gehe zur nächsten Person
actualPerson = actualPerson.next;
//mache das solange, bis wir wieder
//bei der ersteb sind.
} while (actualPerson != start);
return returnString.toString();
}
/**
* Erzeugt neue Person mit angegebener Nummer und
* fügt sie in die Liste ein. (vor dem Startelement)
*
* @param value Der Wert der im neuen Objekt gespeichert wird
*/
public void insert (int value) {
// ...
}
/**
* Entfernt Person an angegebener Position und setzt start
* auf die stelle nach der entfernten Person.
*
* @param pos Die Position des zu entfernenden Objektes
*/
public int remove (int pos) {
// ...
}
}