Liste.java
import java.io.*;
public class Liste {
private ListenKnoten start;
public Liste() {
// Konstruktor für leere Liste
start = null;
}
public void einfügen(ListenKnoten neu) {
// fügt Knoten neu an die richtige Stelle ein
// 1. Fall: Liste ist noch leer
if (start == null) {
start = neu;
return;
}
// 2. Fall: neues Element kommt an den Anfang der Liste
if (start.daten > neu.daten) {
neu.naechster = start;
start = neu;
return;
}
// 3. Fall: Liste durchlaufen
ListenKnoten letzter = start;
ListenKnoten aktuell = start.naechster;
while ((aktuell != null) && (aktuell.daten < neu.daten)) {
aktuell = aktuell.naechster;
letzter = letzter.naechster;
}
// gefunden, jetzt einfügen
letzter.naechster = neu;
if (aktuell != null) { // neu ist nicht letztes Element
neu.naechster = aktuell;
}
}
public void ausdrucken() {
ListenKnoten aktuell = start;
while (aktuell != null) {
System.out.println(aktuell.daten);
aktuell = aktuell.naechster;
}
}
public static void main(String[] args) throws IOException {
// Testprogramm mit Zufallszahlen
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// Anzahl der Werte abfragen
System.out.println("Anzahl der Listenelemente eingeben:");
String s = in.readLine();
int anzahl = Integer.parseInt(s);
// starte mit leerer Liste
Liste sortierListe = new Liste();
// fülle die Liste
for (int i = 0; i < anzahl; i++) {
double wert = Math.random();
ListenKnoten neu = new ListenKnoten(wert);
sortierListe.einfügen(neu);
}
// gib die Liste aus
sortierListe.ausdrucken();
}
}