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


Anmelden zum Antworten