verkettete Liste rückwärts via Rekursion ausgeben



  • Hallo,
    ich habe eine Frage. Ein Freund von mir gab mir diese Aufgabe:
    Erstelle eine einfach verkettete Liste und gebe die Daten rückwärts aus. KEINE doppelt verkettete Liste! Tipp: Versuche es mit Rekursion...

    Leider schaffe ich es nicht, die Liste mit Rekursion rückwärts auszugeben. Vorwärts bekomme ich es hin. Bin seit über einer Woche am verzweifeln.

    Weiß da jemand weiter? danke!



  • Was soll das Problem mit C++ zu tun haben?

    Und überleg' mal: rückwärts durchgehen kannst du nicht. Aber vorwärts kannst du durchgehen. Und sobald du am Ende angekommen bist, kannst du ausgeben, und dann zurückgehen. Und das gilt dann für alle Nodes.

    Ganz einfach also. Erst durchgehen, dann ausgeben.



  • Schon eine Woche und nicht eine Zeile Code?
    Vielleicht gibt dir dein "Freund" ja einen Tipp?


  • Mod

    BÄRliner schrieb:

    Hallo,
    ich habe eine Frage. Ein Freund von mir

    Vögelst du deinen Informatiklehrer?



  • dachschaden, der Quelletxt ist in C++ geschrieben. Das mit dem bis zum Ende gehen und letztes Element ausgeben habe ich auch schon ausprobiert, leider habe ich keine Idee wie ich einen wieder zurück gehe, um das nächste bzw. das Vorgängerelement auszugeben.
    Einen Tipp hat er ja schon genannt: "Rekursion". Mehr konnte ich nicht aus ihm herauskitzeln.

    manni66, ich habe alles verworfen und immer neu begonnen. Habe bestimmt 10 verschiedene Ansätze gehabt. Leider hat keines zum Erfolg geführt. Bringt ja auch nicht viel, wenn ich vor der Programmierung gar nicht weiß, wie ich es im Programm umsetzen will.



  • BÄRLiner schrieb:

    dachschaden, der Quelletxt ist in C++ geschrieben.

    Und? Das ist kein C++-Problem, sondern ein Algorithmus-Problem. Du hast kein Problem mit der Implementierung, sondern mit der Struktur dahinter.

    BÄRLiner schrieb:

    leider habe ich keine Idee wie ich einen wieder zurück gehe, um das nächste bzw. das Vorgängerelement auszugeben.
    Einen Tipp hat er ja schon genannt: "Rekursion". Mehr konnte ich nicht aus ihm herauskitzeln.

    Wie, oh wie könntest du nur einen zurückgehen?

    Hm.

    Ist ja nicht so, als ob Funktionen zurückkehren könnten, nicht?



  • Arcoth, ich finde deine Frage ziemlich deplaciert und infantil. Es gibt mehr als nur SEX auf der Welt. Aber es scheint schon fast so, als würden die bürgerlichen Stadt-Affen, zurück auf die Bäume klettern.
    Und zur Info: nein, tue ich nicht. Ein FREUND ist nunmal ein FREUND der zufällig sich u.a. mit Programmierung beschäftigt.

    Dennoch vielen Dank für deine eigentümlichen Bemühungen mir bei meinem Problem zu helfen.



  • Es kommt darauf an, wann du die Ausgabe in deiner Funktion machst.

    Vor oder nach dem rekursiven Aufruf.



  • BÄRLiner schrieb:

    Einen Tipp hat er ja schon genannt: "Rekursion". Mehr konnte ich nicht aus ihm herauskitzeln.

    Das hier gibt eine Zeichenkette rückwärts aus:

    void rev (char *s)
    {
        if (*s)
            rev (s+1);
        putchar (*s);
    }
    

    Wenn du kapiert hast, wie das funktioniert, dann ist der Rest der Aufgabe nur noch ein Klacks. 🙂



  • Wenn du Probleme mit deinen Hausaufgaben hast, erfinde keine Lügengeschichten und präsentiere wenigsten einen Ansatz.

    Ansonsten: alles Gute auf deinem weiteren Lebensweg



  • manni66, Glaskugel in der Tasche? Wie wird das Wetter nächste Woche?


Anmelden zum Antworten