Doppelt verkettete Liste

  • Hallo,

    ich habe eine Aufgabe gestellt bekommen, und hab leider keine Ahnnung wie ich da rangehen soll.

    Hier die Aufgabe:

    In der Vorlesung wurden einfach verkettete Listen eingeführt. Doppelt verkettete
    Listen besitzen zusätzlich zum Zeiger auf das nachfolgende Element
    auch eine Zeiger auf das vorherige Element. Beim ersten Element der Liste
    wird der Zeiger auf das vorherige Element ebenfalls auf NULL gesetzt, genauso
    wie es beim letzten Element der einfach verketteten Liste mit dem Zeiger auf
    das nachfolgende Element der Fall war.
    Im Folgenden soll eine doppelt verkettete Liste implementiert werden.
    1. Geben Sie die Definition der Liste (Listenkopf)
    typedef s truct List_ {...} List ;
    an. Die Struktur soll auch die aktuelle Größe der Liste speichern.
    2. Geben Sie die Definition des Listenelements
    typedef s truct Node_ {...} Node ;
    an. Ein Listenelement soll als eigentlichen Inhalt einen int-Wert enthalten.
    3. Schreiben Sie eine Funktion zum Erzeugen und Einfügen eines neuen
    Elements void insertIntoList(List* list, int iVal). Der Funktion wird
    ein Zeiger auf das Kopfelement und der int-Wert ¨ubergeben, der in die
    Liste eingefügt werden soll. Es wird davon ausgegangen, dass die Liste
    nach den int Werten aufsteigend sortiert ist. Das neue Element soll so
    eingef¨ugt werden, dass die Liste aufsteigend sortiert bleibt.
    Der Speicher für das neue Element muss zuerst angelegt werden. Achten
    Sie auf korrekte Behandlung beim Einfügen am Anfang bzw. am Schluss
    der Liste und in eine leere Liste.
    4. Schreiben Sie eine Funktion zum Löschen von Elementen mit
    void deleteFromList(List* list, int iVal), der ein Zeiger auf das Kopfelement
    der Liste und ein int-Wert ¨ubergeben werden. Es sollen alle Elemente
    aus der Liste entfernt werden und ihr Speicher freigegeben werden,
    die diesen int-Wert enthalten.
    5. Schreiben Sie eine Funktion void printList(List* list), der ein Zeiger
    auf das Kopfelement der Liste übergeben wird. Die Funktion soll die
    Anzahl der Element in der Liste ausgeben und anschliessend die int-
    Wert getrennt durch Pfeile (->), falls mindestens noch ein Element in
    der Liste ist. Beispiel-Ausgabe:
    Double linked list with 4 elements.
    Data: 2 -> 4 -> 5 -> 5
    6. Schreiben auch eine Funktion main(), die zunächst eine Liste anlegt und
    dieWerte 5, 7, 10, 2, 7, 3 und 10 in dieser Reihenfolge in die Liste einfügt.
    Anschliessend soll der Wert 10 aus der Liste entfernt werden. Geben Sie
    nach jedem einzelnen Schritt die Liste mit der Funktion printList() aus.

    Wär echt super, wenn mir da jmd. helfen könnte...
    Danke schon mal im Voraus.

  • Also was eine verkettete Liste ist habt ihr in der Vorlesung besprochen (und bei Wikipedia steht es ja auch), und die Schritte die Du dafuer machen musst stehen auch in der Angabe. Ich wuesste jetzt gar nicht wie ich dir helfen soll, ausser vielleicht dir eine fertige Liste zu schreiben? Aber selbst das kannst Du schneller haben, wenn Du einfach bei Google danach suchst.

    Kannst Du vielleicht genauer beschreiben, wo Du nicht weiterkommst?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!