listen:trennungstrukturdaten:nteselementloesung:start
Dies ist eine alte Version des Dokuments!
Methode gibDenNtenKunden(): Lösung
<HTML>
<div class="java-online" style="height: 650px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'gibNtenWert'}">
<script type="text/plain" title="Hauptprogramm.java"> Supermarktkasse s = new Supermarktkasse(); s.hintenAnstellen(new Kunde("Max")); s.hintenAnstellen(new Kunde("Tina")); s.hintenAnstellen(new Kunde("Silke")); s.hintenAnstellen(new Kunde("Tim"));
println(s.gibDenNtenKunden(2).name);
class Supermarktkasse {
Knoten anfang; Knoten ende;
void hintenAnstellen(Kunde kunde) {
if(anfang == null) {
anfang = new Knoten(kunde);
ende = anfang;
return;
}
Knoten neuerKnoten = new Knoten(kunde);
ende.setNachfolger(neuerKnoten);
ende = neuerKnoten;
}
Kunde erstenEntnehmen() {
Knoten erster = anfang;
anfang = erster.getNachfolger();
return erster.getDaten();
}
int getAnzahlIterativ() {
if(anfang == null) {
return 0;
}
int anzahl = 1;
Knoten aktuellerKnoten = anfang;
while (aktuellerKnoten.getNachfolger() != null) {
aktuellerKnoten = aktuellerKnoten.getNachfolger();
anzahl++;
}
return anzahl;
}
int getAnzahlRekursiv() {
if(anfang == null) return 0;
return anfang.getAnzahl();
}
Kunde gibDenNtenKunden(int n) {
if(n == 0) return anfang.getDaten();
return anfang.gibDenNtenKunden(n);
}
}
class Knoten {
Knoten nachfolger; Kunde daten;
Knoten(Kunde kunde) {
this.daten = kunde;
}
int getAnzahl() {
if(nachfolger == null) return 1;
return nachfolger.getAnzahl() + 1;
}
Knoten getNachfolger() {
return nachfolger;
}
void setNachfolger(Knoten nachfolger) {
this.nachfolger = nachfolger;
}
Kunde getDaten() {
return daten;
}
Kunde gibDenNtenKunden(int n) {
if(n == 1) return daten;
if(nachfolger != null) {
return nachfolger.gibDenNtenKunden(n - 1);
}
// Fehler: n ist zu groß!
return null;
}
}
class Kunde {
String name;
Kunde(String name) {
this.name = name; }
} </script>
listen/trennungstrukturdaten/nteselementloesung/start.1726731703.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
