wede23 Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 (bearbeitet) Hallo zusammen ich hoffen, das mir jemand weiterhelfen kann. Ich soll eine rekursive Methode schreiben und zwar soll eine Liste rückwärts ausgegeben werden. Die Liste hat keinen Zeiger auf das Ende nur auf den Anfang; Anbei die Aufgabe mit den Klassen Link und Liste! class Link { protected int daten; protected Link naechster; Link(int daten, Link naechster) { this.daten = daten; this.naechster = naechster; } public class Liste { protected Link anfang; public Liste() { anfang = null; } public void rückwärtsausgeben () { rückwärtsausgebenR(this.anfang); } public void rückwärtsausgebenR (Link element) { // In dieser Methode soll die rekurisve Methode enstehen } } Aufgabe: Schreiben Sie eine rekursive Methode, die den Inhalt der Liste rückwärts, also von hinten nach vorn ausgibt Bearbeitet 23. Juli 2014 von flashpixx Code-Tags Zitieren
SilentDemise Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 Was hast du dir denn schon überlegt? Zitieren
Klotzkopp Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 Ein Tipp: Rekursive Aufrufe kommen in umgekehrter Reihenfolge zurück. Zitieren
Jimbo0915 Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 (bearbeitet) Für solche unterirdischen Übungsaufgaben sollte man deinen Lehrer auspeitschen. schreib einfach: public void rückwärtsausgebenR (Link element) { If (element == null) { while (true) { Console.WriteLine("Sie sind eine Pappnase!"); } return; } if (!(element.naechster == null)) { rueckwaertsausgebenR(element.naechster); } Console.WriteLine(String.Format("{0}", element.daten.ToString())); } wird zwar schon vom Compiler zerrupft.... aber kommt dem gewünschten Ergebnis wohl am nächsten. LG Jimbo Bearbeitet 22. Juli 2014 von Jimbo0915 Zitieren
SilentDemise Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 Für solche unterirdischen Übungsaufgaben sollte man deinen Lehrer auspeitschen. schreib einfach: public void rückwärtsausgebenR (Link element) { If (element == null) { while (true) { Console.WriteLine("Sie sind eine Pappnase!"); } return; } if (!(element.naechster == null)) { rueckwaertsausgebenR(element.naechster); } Console.WriteLine(String.Format("{0}", element.daten.ToString())); } wird zwar schon vom Compiler zerrupft.... aber kommt dem gewünschten Ergebnis wohl am nächsten. LG Jimbo Da hat er jetzt bestimmt ne menge gelernt Zitieren
Jimbo0915 Geschrieben 22. Juli 2014 Geschrieben 22. Juli 2014 Da hat er jetzt bestimmt ne menge gelernt Ja, die Qualität des Beitrages mag den hohen Ansprüchen diese Forums nicht gerecht werden, (den niederen wohl eher auch nicht). Ich bin aber auch nicht sein Erzieher, er wird schon wissen, dass es nichts hilft irgendetwas abzuschreiben, hat ja wohl auch die Schule geschafft, oder? Und ganz ehrlich, ich hoffe das wurde im Suff getackert. Ja es geht hier nur um die Rekursion... Aber die Übungsaufgabe ist einfach nur Grausig. Pseudo Code schön und gut, aber jetzt sitzt er zuhause, hat die gegebenen Klassen und will seine Lösung überprüfen. Dann korrigiert er die Klassen der Übungsaufgabe, damit er es überhaupt zum Compilieren bekommt? LG Jimbo Zitieren
Klotzkopp Geschrieben 23. Juli 2014 Geschrieben 23. Juli 2014 Aber die Übungsaufgabe ist einfach nur Grausig. Pseudo Code schön und gut, aber jetzt sitzt er zuhause, hat die gegebenen Klassen und will seine Lösung überprüfen. Dann korrigiert er die Klassen der Übungsaufgabe, damit er es überhaupt zum Compilieren bekommt?Du hast aber schon gemerkt, dass das Java ist, kein C#? Zitieren
Jimbo0915 Geschrieben 23. Juli 2014 Geschrieben 23. Juli 2014 Du hast aber schon gemerkt, dass das Java ist, kein C#? Dann geh ich jetzt mal fix in die Ecke und schäme mich ne Runde, während Ihr alle bitte stillschweigen bewahrt... Die Ü-Aufgabe ist natürlich Super durchdacht LG Jimbo Zitieren
etreu Geschrieben 1. August 2014 Geschrieben 1. August 2014 Die Übungsaufgabe ist vielleicht nicht beste, sollte aber durchaus reichen den Unterschied zwischen Tail- und Head- Rekursion zu erläutern. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.