Zuerst einmal zu dem Problem was ich habe. Man soll in eine Liste eben 3 Mal einen Namen eingeben können und dann soll das ganze als Liste sortiert ausgegeben werden. Bis jetzt habe ich folgenden Code, aber da verschwindet immer der Läufer nummer 2 und ich weiß nicht warum. Kann mir jemand helfen?
Code:
Danke für eure Hilfe
Code:
Java:
import java.io.*;
public class MarathonTimeManagement {
private Attendee start;
public MarathonTimeManagement() {
// Konstruktor für leere Liste
start = null;
}
public void einfuegen(Attendee neu) {
// 1. Fall: Liste ist noch leer
if (start == null) {
start = neu;
return;
}
boolean ok = false;
for(int i =0; i< neu.getName().length() && i < start.getName().length();i++)
{
if(start.getName().charAt(i) < neu.getName().charAt(i))
{
break;
}
ok = true;
}
// 2. Fall: neues Element kommt an den Anfang der Liste
if (ok == true ) {a
neu.next = start;
start = neu;
return;
}
// 3. Fall: Liste durchlaufen
Attendee letzter = start;
Attendee aktuell = start.next;
while ((aktuell != null) && (aktuell.getName().charAt(0) < neu.getName().charAt(0))) {
aktuell = aktuell.next;
letzter = letzter.next;
}
// gefunden, jetzt einfügen
letzter.next = neu;
if (aktuell != null) { // neu ist nicht letztes Element
neu.next = aktuell;
}
}
public void ausdrucken() {
Attendee aktuell = start;
while (aktuell != null) {
System.out.println(aktuell.getName());
aktuell = aktuell.next;
}
}
public static void main(String[] args) throws IOException {
System.out.println("Name des Läufers 1 eingeben:");
String s = Input.readString();
// starte mit leerer Liste
MarathonTimeManagement sortierListe = new MarathonTimeManagement();
Attendee neu = new Attendee(s);
sortierListe.einfuegen(neu);
System.out.println("Name des Läufers 2 eingeben:");
String x = Input.readString();
Attendee neu2 = new Attendee(x);
System.out.println("Name des Läufers 3 eingeben:");
String y = Input.readString();
Attendee neu3 = new Attendee(y);
sortierListe.einfuegen(neu3);
// gib die Liste aus
sortierListe.ausdrucken();
}
}
Java:
public class Attendee {
private String name;
public int anzahlZwischenZeiten = 0;
public Attendee next=null;
public TimeStamp timeStamps = null;
public Attendee(String name){
this.name = name;
next=null;
}
// Konstruktor mit Ziel
public Attendee(String name, Attendee next) {
this.name = name;
next = next;
}
public String getName(){
return name;
}
}
Danke für eure Hilfe
