Iteration bzw. Rekursion
-
sind die beiden folgenden Methoden richtig?
struct Node // Struktur repräsentiert Knoten einer { // einfach verketteten Liste int value; Node *next; }; int i_summe(*list) // soll die Summe der value-Felder der in einer { // Liste enthaltenen Knoten ermitteln. Parameter list int summe; // zeigt auf Anfang der Liste while(list != null) { summe += *list; list = list->next; } return summe; } int r_summe(*list) // das gleiche wie oben nur rekursiv { if(list != null) return *list + r_summe(list->next); else return 0; }
-
Der Fehler ist wohl dass es im C++ Forum steht...
-
GR_Watto schrieb:
sind die beiden folgenden Methoden richtig?
struct Node // Struktur repräsentiert Knoten einer { // einfach verketteten Liste int value; Node *next; }; int i_summe(*list) // soll die Summe der value-Felder der in einer { // Liste enthaltenen Knoten ermitteln. Parameter list // int summe; // zeigt auf Anfang der Liste int summe = 0; while(list != null) { // summe += *list; summe += list->value; list = list->next; } return summe; } int r_summe(*list) // das gleiche wie oben nur rekursiv { if(list != null) //return *list + r_summe(list->next); return list->value + r_summe(list->next); else return 0; }Kurt
-
GR_Watto schrieb:
sind die beiden folgenden Methoden richtig?
Da sind keine Methoden. Falls du die Funktionen meinst, die sind nicht richtig. Du könntest sowas übrigens bitte das nächste mal wenigstens probehalber compilieren, bevor du das Forum deine Syntaxfehler ausbügeln läßt.
Ergänzende Verbesserungen:
struct Node // Struktur repräsentiert Knoten einer { // einfach verketteten Liste int value; Node *next; }; //int i_summe(*list) // soll die Summe der value-Felder der in einer int i_summe(Node *list) { // Liste enthaltenen Knoten ermitteln. Parameter list // int summe; // zeigt auf Anfang der Liste int summe = 0; // while(list != null) while (list != 0) { // summe += *list; summe += list->value; list = list->next; } return summe; } //int r_summe(*list) // das gleiche wie oben nur rekursiv int r_summe(Node *list) { // if(list != null) if (list != 0) // return *list + r_summe(list->next); return list->value + r_summe(list->next); else return 0; }
-
mea culpa. Dass nicht einmal die Funktionsköpfe stimmen hab ich nicht bemerkt.
Vielleicht war's ja auch nur ein Test ob wir auch wirklich alle Fehler finden.
Kurt