Beiträge von olqmin

    Hallo! Bitte helfen Sie mir mit dieser Aufgabe


    Die folgende Vereinbarung beschreibt das Knotenelement einer doppelt veketteten Liste zur Behandlung von Messdaten. Die Komponente "Messwert" repräsentiert den ganzzahligen Messwert, die Komponente "Anz" gibt an, wie häufig dieser aufgetreten ist.

    typedef struct elem_t elTyp; /* Vorwaertsdeklaration von elTyp */
    struct elem_t
    {
    elTyp *next;
    elTyp *prev;
    unsigned long Messwert;
    int Anz;
    };

    a. Ehe für einen neu in die Liste aufzunehmenden Wert ein neues Knotenelement erzeugt wird, ist zunächst zu untersuchen ob bereits ein Knotenelement mit gleichem Messwert existiert. Dies ist Aufgabe der Funktion "LstSuchInc()", die die Liste dahingehend untersucht ob der Messwert bereits existiert, die Anzahl erhöht und den Zeiger auf diesen Knoten zurückliefert. Übergabeparameter sind der Messwert und der Zeiger auf das erste Listenelement (Wurzel). Im Misserfolgsfall - die Liste ist leer oder der Messwert befindet sich noch nicht in der Liste - ist der NULL-Zeiger zurückzugeben. Der Prototyp (Funktonsdeklaration) für "LstSuchInc()" lautet:

    elTyp *LstSuchInc(elTyp *wrz, unsigned long ulWert);
    Realisieren Sie "LstSuchInc()"!


    b. Existiert der Messwert noch nicht, so ist ein neues Knotenelement am Ende der Liste einzufügen. Dazu muss zunächst der Zeiger auf das aktuelle letzte Element ermittelt werden. Dies leistet die Funktion "GetLast()", die die Wurzel der Liste als Übergabeparameter erhält und den Zeiger auf das gesuchte letzte Element zurückliefert. Formulieren Sie "GetLast()" als Funktion in ANSI-C! Ist der Wert des Übergabeparameters NULL, so ist auch der Rückgabewert NULL zu setzen!


    c. Mittels "CalcMittel()" ist der Mittelwert über alle Messwerte zu bilden. Formulieren Sie "CalcMittel()" in ANSI-C!