Linguaggio C - Tipi di dato complessi

Strutture ricorsive, liste dinamiche, alberi, ...

In C e' possibile dichiarare una struttura contenente al suo interno uno o piu' puntatori al tipo di struttura in corso di dichiarazione.
Cosi' facendo e' possibile scrivere programmi che creino in memoria delle liste semplici, alberi binari od altre strutture ancora piu' complesse.
Esempio di lista semplice:
  ...

  struct nodolista
    {
    int item;
    struct nodolista *next;
    };

  typedef struct nodolista s_nodolista;         /* per comodita' */

  s_nodolista *first = NULL;    /* puntatore al primo elemento della lista */

  ...
    
esempio di lista dinamica

Esempio di albero binario:

  ...

  struct nodo
    {
    float item;
    struct nodo *left;
    struct nodo *right;
    };

  typedef struct nodo s_nodo;           /* per comodita' */

  s_nodo *root = NULL;                  /* origine dell'albero */

  ...
    
esempio di albero binario

N.B. - Normalmente le strutture relative ai nodi vengono allocate e deallocate in memoria dinamicamente, tramite le funzioni malloc() e free() della libreria standard. E' responsabilita' del programmatore l'aggiornamento coerente dei puntatori.


Indice-C Indice linguaggio C
At Home Umberto Zappi Home Page