programacion - ¿Hay alguna biblioteca C de código abierto con estructuras de datos comunes?
manual de programacion android pdf (8)
Estoy buscando una biblioteca C con estructuras comunes de datos reutilizables, como listas vinculadas, tablas hash, etc. Algo así como la fuente distribuida con Mastering Algorithms with C (Paperback) de Kyle Loudon .
Apache Portable Runtime.
BSD queue.h tiene:
- SLIST = lista individualmente vinculada
- LISTA = lista doblemente vinculada
- SIMPLEQ = cola enlazada individualmente
- TAILQ = cola doblemente enlazada
BSD tree.h tiene:
- RB - árbol rojo-negro
- SPLAY - árbol splay
Consulte las páginas man de la queue(3) y tree(3) para más detalles. Realmente me gustan porque son macros puros de C sin dependencias (ni siquiera libc). Además, con la licencia BSD no tiene que preocuparse por ninguna restricción de la empresa con GPL.
La Biblioteca GDSL podría ser una buena cosa a considerar:
Las herramientas de software de AT & T.
SGLIB es una excelente biblioteca genérica de estructuras de datos. La biblioteca actualmente proporciona implementaciones genéricas para:
ordenar matrices
listas vinculadas
listas clasificadas ordenadas
listas dobles
árboles rojo-negro
contenedores hash
Es muy rápido, más rápido que glib. Está inspirado en la Biblioteca de plantillas estándar. Descarga aquí
Otra solución es el software Attractive Chaos . Biblioteca de macro C:
kbtree.h: biblioteca eficiente de B-tree en C.
khash.h: biblioteca de tablas hash rápidas y livianas en C.
kvec.h: recipiente simple de vectores en C.
El software Sglib y Attractive Chaos son C macros library. Usar void * para implementar contenedores genéricos en C puede ser ineficiente. Las macros C imitan la plantilla C ++ y son tan eficientes como la plantilla C ++
gnulib , la biblioteca de portabilidad gnu.
Se distribuye como código fuente. Esta lista es de su lista de módulos , que incluye una TONELADA de otras cosas. Uno interesante es "c-stack: handling, causando la salida del programa".
- lista
- lista de arreglo
- carray-list
- lista enlazada
- avltree-list
- rbtree-list
- linkedhash-list
- avltreehash-list
- rbtreehash-list
- sublista (tipo de datos de lista secuencial respaldado por otra lista)
- oset (conjunto ordenado abstracto)
- array-oset
- avltree-oset
- rbtree-oset
Gnome proporciona una excelente biblioteca para esto, llamada Glib , con muchas estructuras de datos útiles y otras utilidades también.