C : einfach und doppelt verkettete Listen

  • Tach zusammen,


    kann mir jemand das mit den einfach und doppelt verkettete Listen erklären oder mir einen Link nennen, wo das verständlich erklärt ist?.


    Ich hab echt kein Problem mit programmieren und dem erlernen...aber diese einfach und doppelt verkettete Listen sind irgendwie nicht meine Freunde.


    Danke

    Ich würde mich ja gerne mit Dir geistig duellieren, aber wie ich sehe bist Du unbewaffnet ;)

  • Ja, Pointer und Struct sind mit bekannt

    Ich würde mich ja gerne mit Dir geistig duellieren, aber wie ich sehe bist Du unbewaffnet ;)

  • Hi,
    hast Du schonmal nach "linked list" und/oder "double linked list" gegoogelt?
    Da gibts einiges mit unterschiedlichen Tiefgang.
    Die beste Erklaerung, die ich kenne, war in der zweiten Haelfte der 80er in einem Chip-Special Pascal(!) :), nur habe ich saemtliche kopierte Zeitungsartikel schon beim letzten Umzug entsorgt.


    cu
    XlF

  • also ich wills mal erklären, hoffentlich verständlich:
    in einer einfach verketteten liste enthält jedes element daten und einen pointer auf das folge-element - zusammengefasst in einer struct.
    somit zeigt das erste element auf das zweite, das zweite auf das dritte etc.
    das letzte element zeigt ins nichts (null)
    auserdem muss es noch einen pointer auf das erste element der liste geben - sonst fängt man damit nix an ;)
    so eine liste lässt sich dann ganz einfach per schleife durchgehen.
    das einfügen ist genial, man muss nur einen pointer auf das neue element setzten.

    !ND - E71

  • Danke !ND


    soweit hatte ich die Dinger schon verstanden, bei mir hapert es an der praktischen Umsetzung.


    Was ich suche ist sowas an einem praktischen Beispiel erklärt, sozusagen eine How-To-Do - Anleitung, wo mir mal der Weg vom Start bis zum Ziel erklärt wird....von mir aus auch mit Pointern im Text ;)


    Ich brauch, um was zu verstehen, immer was vor Augen.

    Ich würde mich ja gerne mit Dir geistig duellieren, aber wie ich sehe bist Du unbewaffnet ;)

  • na dann...


    eine einfache struct:
    ----------
    struct element
    {
    int x; // daten
    element *next; // pointer auf das nächste element
    };
    ----------
    (ich hoffe ich verhau hier nix an der syntax, bin im moment auf C# unterwegs.)


    im hauptprogramm siehts dann so aus:
    ----------
    element *start;
    start=null;
    ----------
    anfangspointer auf null -> liste ist leer.


    einfügen eines elements an erster position sieht dann so aus:
    ----------
    element *e = new element(); // neues element erstellen
    e->x=123; // irgendwelche daten...
    e->next=start; // aktuelles erstes element wird folgeelement
    start=e; // neues element an erster stelle einfügen
    ----------
    alle elemente ausgeben geht dann so:
    ----------
    element *current=start;
    while(current!=null)
    {
    printf("%s\n\r",current->x);
    current=current->next;
    }
    ----------
    ok, klar so weit?
    hab das alles mal einfach so runtergetippt, kann nicht garantieren das es auf anhieb funktioniert ;) - aber es geht um das prinzip


    btw: wo/wie lernst du das? schule?

    !ND - E71

  • Ja, danke, genauso eine übersichtlich simple Erklärung hab ich gesucht.

    Ich würde mich ja gerne mit Dir geistig duellieren, aber wie ich sehe bist Du unbewaffnet ;)

  • Hallo!


    !ND, das ist doch mal ne prima Erklärung :top:



    Aber wie sieht das denn aus, wenn ich eine Liste sortieren will? Wenn's einzelne Variablen wären, könnte ich die ja mit Bubble-Sort durcheinander schieben. Aber klappt das ganze denn auch mit Strukturen?



    ______
    Thomas

  • Hi,


    Zitat

    Original geschrieben von LJ_
    Aber wie sieht das denn aus, wenn ich eine Liste sortieren will? Wenn's einzelne Variablen wären, könnte ich die ja mit Bubble-Sort durcheinander schieben. Aber klappt das ganze denn auch mit Strukturen?


    am einfachsten sortierst Du bereits beim Einfuegen.
    Wenn die Eigenschaft der Sortiertheit i.V.m. performanten Zugriff (schreibend und lesend) wichtig ist, bietet sich eine Baumstruktur mehr an.


    cu
    XlF

Jetzt mitmachen!

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