Listen



  • Hallo, ich habe mal eine Verständnisfrage.

    Wann werden Listen so nenutzt:

    typedef struct listelement {
    int key;
    struct listelement * next;
    } ListElement;
    

    und wann so:

    typedef struct { 
        char name[30]; 
        char vorname[30]; 
    } person_t;
    
    typedef struct perslistelement { 
        person_t pers_obj; 
        struct perslistelement *next; 
    } PersListElement;
    

    Ich versuche gerade, den expliziten Unterschied zu verstehen. Aber ganz deutlich wird es mir noch nicht.



  • Mit der zweiten Variante kapselst du deine Daten halt besser. Alle eigentlichen Nutzdaten liegen in person_t , und in der Liste hast du dann nur das Nutzdatenobjekt und der Verweis auf das nächste Element.

    Die zweite Variante erlaubt außerdem etwas mehr Abstrahierung (anstatt ein Objekt könntest du auch gleich einen Zeiger auf void reinpacken und somit Elemente verschiedener Typen verwalten).



  • Da ist kein Unterschied.
    Du hast die Nutzdaten (ein int bzw ein struct) und einen Zeiger auf das nächste Element.



  • DirkB schrieb:

    Da ist kein Unterschied.
    Du hast die Nutzdaten (ein int bzw ein struct) und einen Zeiger auf das nächste Element.

    Jupp.
    👍

    Man könnte den Nutzdatentyp sogar zur Verdeutlichung typedeffen, fürchte ich, wäre dann wäre die Liste jeweils buchstabengleich?


Log in to reply