Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Listen in C

  1. #1
    DELAC
    Gast

    Listen in C

    Hi!

    Hätte hier ne Frage zur Listenimplementierung:

    Was genau stellen denn die beiden Pointer *nodeptr und *listptr dar? Ich verstehe die Stuct definition bis:
    typedef struct node{}Node.


    Hier die Funktionen:


    typedef struct node {T* data; struct node *next;} Node, *nodeptr;

    typedef struct list {nodeptr first, last;} List, *listptr;

    List L;
    void Init(listptr L)
    { L->first = NULL; L->last = NULL;}


    nodeptr newnode(T* item)
    { nodeptr np;
    np=(nodeptr) malloc(sizeof)(Node));
    np->data = item;
    np->next = NULL;
    return np;
    }

  2. #2
    Registrierter Benutzer
    Registriert seit
    18.04.2008
    Beiträge
    59
    Hallo,

    Zitat Zitat von DELAC Beitrag anzeigen
    Was genau stellen denn die beiden Pointer *nodeptr und *listptr dar?
    nodeptr ist ein pointer auf Node (struct node),
    nicht global hätte man diesen Pointer auch so erzeugen können:
    Code:
    // in main 
    Node *another_nodeptr = malloc(sizeof(Node));

    Ein globaler pointer auf eine Node wird oft verwendet um Anfang und Ende der Listen
    zu referenzieren (also nur ein Zeiger auf die Adresse).

    Code:
    typedef struct list {nodeptr first, last;} List, *listptr;
    In der Typdefinition der Liste werden nur die Refernzen auf first und last node gespeichert.

    Ähnl. ist es in diesem Beispiel, nur eben andere Schreibweise:
    http://openbook.galileocomputing.de/...f7f69e396d6fd8

    Der Vorteil in deinem Code ist aber, dass die struct als Typ mit typedef erzeugt wurde und man dadurch auf struct bei Verwendung verzichten kann.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •