Estoy buscando una biblioteca C con estructuras de datos reutilizables comunes como listas enlazadas, tablas hash, etc. Algo como la fuente distribuida con Mastering Algorithms with C (Paperback) por Kyle Loudon .
Estoy buscando una biblioteca C con estructuras de datos reutilizables comunes como listas enlazadas, tablas hash, etc. Algo como la fuente distribuida con Mastering Algorithms with C (Paperback) por Kyle Loudon .
Respuestas:
BSD queue.h tiene:
BSD tree.h tiene:
Consulte las páginas de comando man queue (3) y tree (3) para obtener más detalles. Realmente me gustan porque son macros C puras sin dependencias (ni siquiera libc). Además, con la licencia BSD, no tiene que preocuparse por las restricciones de la empresa con GPL.
gnulib , la biblioteca de portabilidad de GNU .
Se distribuye como código fuente. Esta lista es de su lista de módulos , que incluye TONELADAS de otras cosas. Uno interesante es "c-stack: manejo de desbordamiento de pila, lo que provoca la salida del programa".
SGLIB es una excelente biblioteca genérica de estructuras de datos. La biblioteca actualmente proporciona implementaciones genéricas para:
ordenar matrices
listas
vinculadas listas vinculadas ordenadas listas
vinculadas dobles
árboles rojo-negro
contenedores hash
Es muy rápido, más rápido que simplista. Está inspirado en la biblioteca de plantillas estándar. Descarga aquí
Otra solución es el software Atractivo Caos . Biblioteca de macros de C:
kbtree.h: biblioteca de árbol B eficiente en C.
khash.h: biblioteca de tabla hash rápida y ponderada en C.
kvec.h: contenedor de vector simple en C.
El software Sglib y Handsome Chaos son bibliotecas de macros C. Usar void * para implementar contenedores genéricos en C puede ser ineficiente. Las macros de C imitan la plantilla de C ++ y son tan eficientes como la plantilla de C ++
La biblioteca GDSL podría ser una buena cosa a considerar:
Herramientas de software de AT&T .