les éléments lors de stockage dans un hashtable ne sont pas organisé.
comment on peut trier ses éléments en langage C.
merci
les éléments lors de stockage dans un hashtable ne sont pas organisé.
comment on peut trier ses éléments en langage C.
merci
bonjour,
ben comme dans tout les autres langages.
En fait c'est plus une question d'algorithmique.
Et la une recherche sur google t en dira plus :
- les algo en pseudo-code (voir en code)
- les avantages/inconvenients par rapport aux cas d utilisations ...
L'idée de wiztricks est pas mal.
Mais il faut bien voir ce que cela donne sémantiquement: Il ne s'agit pas d'une "table de hachage triée" mais d'une "liste chaînée triée indexée par une table de hachage".
Il faut savoir qu'une table de hachage triée ne peut pas exister. Ses sous-conteneurs peuvent l'être, mais c'est tout.
Si tu veux un conteneur associatif trié, il te faut quelque chose de moins performant : tableau linéaire trié, liste chaînée trié, ou arbre binaire de recherche.
À mon sens, le plus performant question temps serait un arbre binaire de recherche cousu, indexé par une table de hachage si tu as vraiment besoin d'un accès rapide clé par clé.
Code C/C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 struct elementArbreCousuHache { /* Données pour arbre binaire de recherche */ struct elementArbreCousuHache * arbre_pere; /* facultatif */ struct elementArbreCousuHache * arbre_filsGauche; struct elementArbreCousuHache * arbre_filsDroit; /* Données de couture de l'arbre. Pour un A.B.R, le parcours est forcément infixe. */ struct elementArbreCousuHache * liste_prec; struct elementArbreCousuHache * liste_suiv; /* Données de hachage (sous-conteneur: liste simplement chaînée, triée ou non) */ struct elementArbreCousuHache * hachage_suiv; /* Les données stockées */ ... };
Je disais "indexée" au sens base-de-donnée : Des données dans leur format propre, mais avec un index pour les retrouver plus vite.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager