Exemple   006 :

#include <llist.h>
 
LLIST *L;         
 
typedef struct
{
    int            Num_Cli;
    int            Age; 
    char         Nom[40];
    char         Adresse[40];
  /* etc. */
}MONTYPE;
 
MONTYPE mt;
 
void main(void)
{
   int i;
 
   if ( initlist( &L, sizeof(MONTYPE) , LINT) == LOK )   
         /* LINT : longueur de la clef = NumClient                        */
  {      /* La liste L contiendra des éléments de type MONTYPE dont la clef */
         /* est NumClient   !!!                                             */
     fprintf(stdout,"Creation de la liste L !!");
 
     for(i=1;i<100;i++)         /* Création de  101 éléments dans la liste  L */
    {
            mt.Num_cli = i;
            mt.Age        = 32;
            adjq(&L,&mt);     /* ajout d'un élément en fin de liste !! */
 
           if( i == 90)
           {
              mt.Age = 33;
              adjq(&L,&mt); /* il y aura 2 Num_cli de 90 mais différent par l'âge !! */
           }
 
     }
                                      
    /* recherche du Num_cli = 90 quelque soit son age car la clef = LINT = sizeof(mt.Num_cli) !! */
          mt.Num_cli = 90;
          mt.Age       =  33;  /* ne sera pas pris en compte !! */
 
 
          if(Rrand(&L,&mt) == LOK )
             fprintf(stdout,"le Client num:%d  son âge : %d !!" , mt.Num_cli , mt.Age); 
             /* on aura 90 et 32 */
 
 
            Setlenkey(&L, LINT+LINT);   /* idem Setlenkey(&L, sizeof(mt.Num_cli) + sizeof(mt.Age) ); */
            mt.Num_cli = 90;
            mt.Age       =  33;
         
            if(Rrand(&L,&mt) == LOK )
                   fprintf(stdout,"le Client num:%d  son âge : %d !!" , mt.Num_cli , mt.Age);
                   /* on aura 90 et 33*/
 
     close_list(&L);
  }
  else
     fprintf(stdout,"Erreur initialisation liste !!");
 
  exit(0);
}

/* Ex : */