package ab51_zahlenreihe; | |||||
public class List { | |||||
public Node first; | |||||
public void hinzufügen(int z) { | |||||
Node neu = new Node(z, null); | |||||
Node zwischen = first; | |||||
// Wenn Liste noch leer | |||||
if(first == null) { | |||||
first = neu; | |||||
} else { // ansonsten | |||||
while(zwischen.next != null) { | |||||
// gehe durch die Liste bis zum Ende | |||||
zwischen = zwischen.next; | |||||
} | |||||
// an letztes Element anhängen | |||||
zwischen.next = neu; | |||||
} | |||||
} | |||||
// Gibt die Anzahl der Einträge in der Liste zurück | |||||
public int länge() { | |||||
if(first == null) { | |||||
return 0; | |||||
} | |||||
Node zwischen = first; | |||||
int count = 0; | |||||
while(zwischen != null) { | |||||
count++; | |||||
zwischen = zwischen.next; | |||||
} | |||||
return count; | |||||
} | |||||
public int herausnehmen() { | |||||
if(first == null) { | |||||
return 0; | |||||
} | |||||
// Nächster Schüler wird zwischengespeichert | |||||
int zahl = first.zahl; | |||||
// Der erste Eintrag wird "verschoben" | |||||
first = first.next; | |||||
// Der zwischengespeicherte Schüler wird zurückgegeben | |||||
return zahl; | |||||
} | |||||
} | |||||
package ab51_zahlenreihe; | |||||
public class Node { | |||||
public int zahl; | |||||
public Node next; | |||||
public Node(int z, Node next) { | |||||
this.zahl = z; | |||||
this.next = next; | |||||
} | |||||
} |
package ab51_zahlenreihe; | |||||
import java.util.Scanner; | |||||
public class Start { | |||||
public static void main(String[] args) { | |||||
List zahlenreihe = new List(); | |||||
Scanner sc = new Scanner(System.in); | |||||
int zahl = sc.nextInt(); | |||||
while(zahl != 0) { | |||||
zahlenreihe.hinzufügen(zahl); | |||||
zahl = sc.nextInt(); | |||||
} | |||||
System.out.println("Die eingegebenen Zahlen waren:"); | |||||
zahl = zahlenreihe.herausnehmen(); | |||||
while(zahl != 0) { | |||||
System.out.println(zahl); | |||||
zahl = zahlenreihe.herausnehmen(); | |||||
} | |||||
} | |||||
} |
package adt; | |||||
package ab5_einfuehrung; | |||||
public class List { | public class List { | ||||
public Node first; | public Node first; | ||||
} | } | ||||
} | } | ||||
// Gibt die Anzahl der Einträge in der Liste zurück | |||||
public int länge() { | public int länge() { | ||||
if(first == null) { | if(first == null) { | ||||
return 0; | return 0; | ||||
} | } | ||||
return count; | return count; | ||||
} | } | ||||
public Schüler herausnehmen() { | |||||
if(first == null) { | |||||
return null; | |||||
} | |||||
// Nächster Schüler wird zwischengespeichert | |||||
Schüler schueler = first.s; | |||||
// Der erste Eintrag wird "verschoben" | |||||
first = first.next; | |||||
// Der zwischengespeicherte Schüler wird zurückgegeben | |||||
return schueler; | |||||
} | |||||
} | } | ||||
package adt; | |||||
package ab5_einfuehrung; | |||||
public class Node { | public class Node { | ||||
public Schüler s; | public Schüler s; |
package adt; | |||||
package ab5_einfuehrung; | |||||
public class Schüler { | public class Schüler { | ||||
public String Name; | public String Name; |
package adt; | |||||
package ab5_einfuehrung; | |||||
public class Start { | public class Start { | ||||
System.out.println("Es stehen " + l.länge() + " Schüler in der Schlange"); | System.out.println("Es stehen " + l.länge() + " Schüler in der Schlange"); | ||||
// Sekretärin | |||||
Node sekretärin = l.first; | |||||
// Liste abarbeiten | |||||
Schüler nächster = l.herausnehmen(); | |||||
while(sekretärin != null) { | |||||
System.out.println(sekretärin.s.Name); | |||||
sekretärin = sekretärin.next; | |||||
while(nächster != null) { | |||||
System.out.println(nächster.Name); | |||||
nächster = l.herausnehmen(); | |||||
} | } | ||||
System.out.println("Es stehen " + l.länge() + " Schüler in der Schlange"); | |||||
} | } | ||||
} | } |