- 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 : */
-
-