Choisir une structure pour un tableau dont l’index est un entier

Problème

Vous voulez coder vous-même une structure de données et les fonctions pour y accéder afin de simuler un tableau dont l’index est un entier. Notez que les entiers ne sont pas forcément consécutifs.

Solution

Si les entiers sont consécutifs et que le premier est zéro ou proche de zéro, tirez profit de cette particularité et utilisez un tableau. Vous pouvez lire à ce sujet la première recette de ce chapitre.

Si les entiers ne sont pas consécutifs, préférez une table de hachage ou un arbre binaire balancé.

Discussion

Lorsque les entiers sont consécutifs et que le premier est zéro, le tableau a cette particularité que la clé et l’index de chaque élément correspondent. Utiliser un tableau comme décrit dans la recette "Choisir une structure pour une liste de données" de ce chapitre. Si le premier entier n’est pas zéro mais proche de zéro, vous pouvez malgré tout utiliser un tableau, donc les premiers éléments ne seront pas gérés.

Dans les autres cas, les tables de hachage et les arbres binaires balancés proposés par glib sont une bonne solution. Il est possible de convertir un entier en pointeur et inversement grâce aux deux macros suivantes de glib : GINT_TO_POINTER() et GPOINTER_TO_INT(). Dans ce cas vous pouvez utiliser une table de hachage...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Coder un tableau dont l'index est une chaîne de caractères
Suivant
Optimiser la recherche d'une aiguille dans une botte de foin