@@ -0,0 +1,70 @@ | |||
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; | |||
} | |||
} | |||
@@ -0,0 +1,11 @@ | |||
package ab51_zahlenreihe; | |||
public class Node { | |||
public int zahl; | |||
public Node next; | |||
public Node(int z, Node next) { | |||
this.zahl = z; | |||
this.next = next; | |||
} | |||
} |
@@ -0,0 +1,26 @@ | |||
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(); | |||
} | |||
} | |||
} |
@@ -1,4 +1,4 @@ | |||
package adt; | |||
package ab5_einfuehrung; | |||
public class List { | |||
public Node first; | |||
@@ -23,6 +23,7 @@ public class List { | |||
} | |||
} | |||
// Gibt die Anzahl der Einträge in der Liste zurück | |||
public int länge() { | |||
if(first == null) { | |||
return 0; | |||
@@ -36,4 +37,34 @@ public class List { | |||
} | |||
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; | |||
} | |||
} | |||
@@ -1,4 +1,4 @@ | |||
package adt; | |||
package ab5_einfuehrung; | |||
public class Node { | |||
public Schüler s; |
@@ -1,4 +1,4 @@ | |||
package adt; | |||
package ab5_einfuehrung; | |||
public class Schüler { | |||
public String Name; |
@@ -1,4 +1,4 @@ | |||
package adt; | |||
package ab5_einfuehrung; | |||
public class Start { | |||
@@ -10,14 +10,16 @@ public class Start { | |||
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"); | |||
} | |||
} |