Übergabe des Wertes einer Variable aus main() in eine Klassenmethode

killermuck

Mitglied
Javascript:
package einsendeaufgabe_5_3;

//die Klasse für die Listenelemente, jetzt auch mit Methoden
class Listenelement {
    String daten;
    Listenelement naechster;
    Listenelement letzter;
                                
//die Methode zum Setzen der Daten
void setDaten(String datenNeu) {
    //die Zeichenkette setzen
    daten = datenNeu;
            
    //das Ende markieren
        naechster = null;
}

//die Methode zum Anhängen eines neuen Elements
Listenelement anhaengen(String datenNeu) {
    naechster = new Listenelement();
    naechster.setDaten(datenNeu);
    return naechster;
}       

//die Methode zur Ausgabe der Liste vorwärts
void ausgebenvorw() {
    System.out.println(daten);
    if (naechster != null)
    naechster.ausgebenvorw();
}
//die Methode zur Ausgabe der Liste rückwärts
int ausgebenrückw(int element) {
return element;
}

}

public class Einsendeaufgabe_5_3 {
    static int element;
    
    public static void main(String[] args) {
        //ein neues Listenelement erzeugen
        Listenelement listenAnfang = new Listenelement();
        Listenelement listenEnde = new Listenelement();
                        
        //die Daten im ersten Listenelement setzen
        listenAnfang.setDaten("Element 1");
        
        listenEnde = listenAnfang;
        
        //weitere Elemente in einer Schleife einfügen
        for (element = 2; element < 21; element++) {
            listenEnde = listenEnde.anhaengen("Element " + element);
            
        }
        //die Liste ausgeben
        System.out.println("Liste aufsteigened:");
        listenAnfang.ausgebenvorw();
        System.out.println("Endeliste = " + element);
        
        System.out.println("Liste absteigened:");
        listenEnde.ausgebenrückw();
        
        
    }
}

Hallo,

ich bekomme es einfach nicht hin die Liste rückwärts auszugeben. Bitte helft mir.
Über element habe ich ja schon das Listenende ermittelt. Es klappt irgendwie nicht,
den Wert von element in die Methode ausgebenrückw zu übergeben, damit ich dort
mit ihr weiterarbeiten kann. Kann mir jemand einen Tip geben?

Vielen Dank im Voraus!
 
Java:
void ausgebenvorw() {
  System.out.println(daten);
  if (naechster != null)
    naechster.ausgebenvorw();
}
void ausgebenrueckw() {
  if (naechster != null)
    naechster.ausgebenrueckw();
  System.out.println(daten);
}
 
Vielen Dank für die schnelle Antwort,

soweit war ich auch schon, allerdings gibt er mir rückwärts nur das Element 20 aus und den Rest,
Element 19 bis Element 1, nicht!

Wie kann das gelöst werden?

Vielen Dank!
 
Du musst vom Start/Beginn der Liste ausgehen, nicht vom Ende der Liste.
In fact: Das Ende der Liste brauchst du überhaupt nicht.

Ausserdem bringt dir doch das Ende der Liste sowieso überhaupt nichts, da du davon ja nirgendwo anders hinnavigieren kannst.
Jedes Listenelement (und damit auch das letzte Element) kennt ja nur das nächste Element in Einfügereihenfolge und nicht das vorherige.
 
Ich hatte eigentlich den Gedanken, das ich das letzte Elemlent (den index) ermittle in diesem Fall die 20, und diesen Wert mit z. b. element-- in der rekursiven Schleife immer verringere um damit alle Daten rückwärts auszugeben.

Ist der Gedanke so falsch?
 
Das habe ich dir bereits geschrieben:
Du musst vom Start/Beginn der Liste ausgehen, nicht vom Ende der Liste.
Java:
//die Liste ausgeben
System.out.println("Liste aufsteigened:");
listenAnfang.ausgebenvorw();
System.out.println("Endeliste = " + element);
      
System.out.println("Liste absteigened:");
listenAnfang.ausgebenrückw(); // <-- listenAnfang!!!!
 

Zurück
Oben