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.