Existe-t-il des bibliothèques C open source avec des structures de données communes? [fermé]


111

Je recherche une bibliothèque C avec des structures de données réutilisables courantes comme des listes chaînées, des tables de hachage, etc. Quelque chose comme la source distribuée avec Mastering Algorithms with C (Broché) par Kyle Loudon .


D'autres sites sont mieux adaptés à ce genre de questions slant.co/improve/topics/19233
ideasman42

Réponses:


57

BSD queue.h a:

  • SLIST = liste liée individuellement
  • LISTE = liste doublement liée
  • SIMPLEQ = file d'attente liée individuellement
  • TAILQ = file d'attente doublement liée

BSD tree.h a:

  • RB - arbre rouge-noir
  • SPLAY - arbre splay

Voir les pages de manuel queue (3) et tree (3) pour plus de détails. Je les aime beaucoup car ce sont de pures macros C sans dépendances (pas même la libc). De plus, avec la licence BSD, vous n'avez pas à vous soucier des restrictions de l'entreprise avec la GPL.


36

Gnome fournit une excellente bibliothèque pour cela, appelée Glib , avec de nombreuses structures de données utiles et d'autres utilitaires.


30

gnulib , la bibliothèque de portabilité gnu.

Il est distribué sous forme de code source. Cette liste provient de sa liste de modules , qui comprend une tonne d'autres choses. Un exemple intéressant est "c-stack: gestion du débordement de pile, provoquant la sortie du programme".

  • liste
  • liste des tableaux
  • liste de carray
  • liste liée
  • avltree-list
  • rbtree-list
  • liste-hach liée
  • avltreehash-list
  • rbtreehash-list
  • sublist (type de données de liste séquentielle soutenu par une autre liste.)
  • oset (ensemble ordonné abstrait.)
  • array-oset
  • avltree-oset
  • rbtree-oset

Gardez à l'esprit que cette option est sous licence GPL et ne peut donc être utilisée légalement que dans les logiciels sous licence GPL.
Noah Andrews

19

SGLIB est une excellente bibliothèque générique de structures de données. La bibliothèque fournit actuellement des implémentations génériques pour: le
tri des tableaux les
listes liées les listes
triées les listes
liées les doubles listes liées
les arbres rouge-noir
les conteneurs hachés

C'est très rapide, plus rapide que glib. Il est inspiré de la bibliothèque de modèles standard. Télécharger ici

Une autre solution est le logiciel Attractive Chaos . Bibliothèque de macros C:
kbtree.h: bibliothèque B-tree efficace dans C.
khash.h: bibliothèque de table de hachage rapide et légère dans C.
kvec.h: conteneur vectoriel simple dans C.

Les logiciels Sglib et Attractive Chaos 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 le modèle C ++ et sont aussi efficaces que le modèle C ++


Bons conseils - je n'avais jamais entendu parler de SGLIB auparavant.
Michael Burr

Le lien "télécharger" pour le projet SGLIB est rompu. On dirait disparaître ...: /
luis.espinal

@ luis.espinal Il peut encore être téléchargé sur freecode.com/projects/sglib
Rob

Il semble que ces deux bibliothèques aient disparu.
Michael Foukarakis




En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.