Je cherche une bibliothèque C avec des structures de données communes réutilisables comme les listes liées, les tables de hachage, etc. Quelque chose comme la source distribuée avec Mastering Algorithms with C (Livre de poche) par Kyle Loudon .
Réponses
Trop de publicités?BSD queue.h a :
- SLIST = liste singulièrement liée
- LIST = liste doublement liée
- SIMPLEQ = singly linked queue
- TAILQ = file d'attente doublement liée
BSD tree.h a :
- RB - arbre rouge-noir
- SPLAY - arbre d'épandage
Voir le file d'attente(3) y arbre(3) pour plus de détails. Je les aime vraiment parce que ce sont de pures macros C sans dépendances (pas même libc). De plus, avec la licence BSD, vous n'avez pas à vous soucier des restrictions de l'entreprise avec la GPL.
gnulib la bibliothèque de portabilité gnu.
Il est distribué sous forme de code source. Cette liste est tirée de son liste des modules qui comprend une tonne d'autres choses. L'une d'entre elles est intéressante : "c-stack : Gestion du débordement de pile, provoquant la sortie du programme".
- liste
- liste de tableaux
- carray-list
- liste liée
- avltree-list
- rbtree-list
- liste de cendres liées
- avltreehash-list
- rbtreehash-list
- sublist ( Type de données de liste séquentielle soutenue par une autre liste. )
- oset (Ensemble ordonné abstrait.)
- array-oset
- avltree-oset
- rbtree-oset
SGLIB est une excellente bibliothèque de structures de données génériques. La bibliothèque fournit actuellement une implémentation générique pour :
trier les tableaux
listes liées
listes chaînées triées
listes doublement liées
arbres rouges-noirs
conteneurs hachés
Il est très rapide, plus rapide que glib. Elle est inspirée de la Standard Template Library. Télécharger ici
Une autre solution est Logiciel Chaos attrayant . C :
kbtree.h : bibliothèque B-tree efficace en C.
khash.h : bibliothèque de table de hachage rapide et légère en C.
kvec.h : conteneur vectoriel simple en C.
Sglib et Attractive Chaos sotware sont des bibliothèques de macros C. L'utilisation de void* pour implémenter des conteneurs génériques en C peut être inefficace. Les macros C imitent les modèles C++ et sont aussi efficaces que ces derniers.