Browse Source

AB51 kommentiert

master
akimmig 5 years ago
parent
commit
ad0db66035
3 changed files with 73 additions and 5 deletions
  1. +41
    -5
      src/ab51_zahlenreihe/List.java
  2. +22
    -0
      src/ab51_zahlenreihe/Node.java
  3. +10
    -0
      src/ab51_zahlenreihe/Start.java

+ 41
- 5
src/ab51_zahlenreihe/List.java View File

@@ -1,12 +1,30 @@
package ab51_zahlenreihe;

/**
* variable Liste um Zahlenreihen zu speichern
*
* @author A. Kimmig
*
*/
public class List {
/**
* Verweis auf den ersten Eintrag bzw. null wenn noch kein
* Eintrag vorhanden ist
*/
public Node first;
/**
* Fügt eine neue Zahl zur Liste hinzu, indem zuerst ein Node
* mit dieser Zahl erstellt wird und dieser Node an die
* bestehende Liste angehängt wird
*
* @param z Zahl, die in die Liste eingetragen werden soll
*/
public void hinzufügen(int z) {
// Neue Node erstellen
Node neu = new Node(z, null);
// Hilfsobjekt, um durch die Liste zu gehen
Node zwischen = first;
// Wenn Liste noch leer
@@ -23,33 +41,51 @@ public class List {
}
}
// Gibt die Anzahl der Einträge in der Liste zurück
/**
* Gibt die Anzahl der Einträge zurück
*
* @return Anzahl der Einträge
*/
public int länge() {
// wenn Liste leer ist
if(first == null) {
// gib 0 als Länge zurück
return 0;
}
// Hilfsobjekt, um durch Liste zu gehen
Node zwischen = first;
// Zähl-Variable
int count = 0;
// gehe durch die Liste durch
while(zwischen != null) {
count++;
zwischen = zwischen.next;
}
// gib die gezählte Anzahl zurück
return count;
}
/**
* Entfernt einen Eintrag aus der Liste und gibt die Zahl,
* die in diesem Eintrag stand zurück
*
* @return Zahl, die entfernt wurde.
*/
public int herausnehmen() {
if(first == null) {
return 0;
}
// Nächster Schüler wird zwischengespeichert
// erste Zahl der Liste zwischenspeichern
int zahl = first.zahl;
// Der erste Eintrag wird "verschoben"
// der erste Eintrag wird "verschoben"
first = first.next;

// Der zwischengespeicherte Schüler wird zurückgegeben
// die zwischengespeicherte Zahl wird zurückgegeben
return zahl;
}
}

+ 22
- 0
src/ab51_zahlenreihe/Node.java View File

@@ -1,9 +1,31 @@
package ab51_zahlenreihe;

/**
* Ein Node repräsentiert einen Eintrag in der Liste.
*
* Er setzt sich zusammen aus einer Zahl und einem
* Verweis auf den nachfolgenden Eintrag
*
* @author A. Kimmig
*
*/
public class Node {
/**
* Zahl in diesem Eintrag
*/
public int zahl;
/**
* Verweis auf den nächsten Eintrag
*/
public Node next;
/**
* Konstruktor
* @param z Zahl, die in diesem Eintrag steht
* @param next Verweis auf den nächsten Eintrag
*/
public Node(int z, Node next) {
this.zahl = z;
this.next = next;

+ 10
- 0
src/ab51_zahlenreihe/Start.java View File

@@ -2,23 +2,33 @@ package ab51_zahlenreihe;

import java.util.Scanner;

import zahlenraetsel.List;

public class Start {
public static void main(String[] args) {
// ertelle die Liste
List zahlenreihe = new List();
// erstelle den Scanner um Zahlen eingeben zu können
Scanner sc = new Scanner(System.in);
// hole die nächste Zahl über die Konsole
int zahl = sc.nextInt();
// hole so lange Zahlen, bis eine 0 eingegeben wurde...
while(zahl != 0) {
// ...und füge sie der Liste hinzu
zahlenreihe.hinzufügen(zahl);
zahl = sc.nextInt();
}
System.out.println("Die eingegebenen Zahlen waren:");
// nimm Zahlen aus der Liste heraus...
zahl = zahlenreihe.herausnehmen();
// ...solange die Zahl nicht 0 war...
while(zahl != 0) {
// ...und gib diese auf der Konsole aus
System.out.println(zahl);
zahl = zahlenreihe.herausnehmen();
}

Loading…
Cancel
Save