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) by Kyle Loudon.¿Hay alguna biblioteca C de código abierto con estructuras de datos comunes?
Respuesta
Gnome proporciona una excelente biblioteca para esto, llamada Glib, con muchas estructuras de datos útiles y otras utilidades también.
gnulib, la biblioteca de portabilidad gnu.
Se distribuye como código fuente. Esta lista es de module list, que incluye una TONELADA de otras cosas. Uno interesante es "c-stack: Stack overflow handling, causando la salida del programa".
- lista
- array-lista
- CArray-lista
- -lista enlazada
- avltree-lista
- rbtree-lista
- linkedhash-lista
- avltreehash-lista
- rbtreehash-list
- sublista (Tipo de datos de lista secuencial respaldado por otra lista.)
- oset (Abstract conjunto ordenado)
- array-oset
- avltree-oset
- rbtree-oset
BSD queue.h tiene:. Lista
- SLIST = enlace simple
- LISTA = lista doblemente vinculada
- SIMPLEQ = enlace simple cola de
- TAILQ = doblemente enlazada cola
BSD tree.h tiene:
- RB - árbol rojo-negro
- SPLAY - árbol biselado
Ver las páginas del manual 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.
SGLIB es una excelente biblioteca genérica de estructuras de datos.Actualmente la biblioteca proporciona implementaciones genéricas para:
matrices de clasificación
listas enlazadas
listas enlazadas ordenados
enumera los dobles enlaces
árboles rojo-negro
contenedores de hash
Es muy rápido, más rápido que mucha labia. Está inspirado en la Biblioteca de plantillas estándar. Download Here
Otra solución es Attractive Chaos software. C macro de biblioteca:
kbtree.h: biblioteca B-árbol eficiente en C.
khash.h: rápido y biblioteca tabla hash ligero de peso en C.
kvec.h: recipiente de vector simple 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++
punteros Niza - Nunca había oído hablar de antes SGLIB . –
El enlace de "descarga" para el proyecto SGLIB está roto. Parece que va a desaparecer ...:/ –
@ luis.espinal Todavía se puede descargar desde http://freecode.com/projects/sglib – Rob
AT & T software tools.
La Biblioteca GDSL podría ser una buena cosa a tener en cuenta:
- 1. ¿Hay alguna biblioteca de memoria temporal jerárquica de código abierto?
- 2. ¿Hay alguna biblioteca de código abierto de C/C++ para las transformaciones de Content Aware Image?
- 3. ¿Pruebas de unidades de referencia para estructuras de datos comunes?
- 4. Buscando una biblioteca de código abierto de base de datos plana/xml Biblioteca C++
- 5. ¿Hay alguna biblioteca C++ XSLT?
- 6. de código abierto C++ exploración de la biblioteca
- 7. ¿Hay alguna forma de crear estructuras anónimas en C#?
- 8. ¿Hay alguna implementación de código abierto de APL?
- 9. ¿Hay alguna buena implementación de Smalltalk de código abierto?
- 10. biblioteca de estructuras de datos de JavaScript
- 11. Pequeña biblioteca Unicode de código abierto para C/C++
- 12. ¿Hay alguna alternativa de código abierto para ReplayDIRECTOR/Chronon Debugger?
- 13. ¿Biblioteca Java de código abierto para leer datos de ECG?
- 14. C# estructuras de datos
- 15. Bibliotecas de estructuras de datos y algoritmos de código abierto recomendados
- 16. ¿Hay alguna buena referencia (de código abierto) Rails NoSQL apps?
- 17. ¿Hay alguna alternativa de código abierto para Crystal Reports?
- 18. ¿Hay alguna alternativa de código abierto para Google Docs?
- 19. ¿Cómo funciona AppHarbor? ¿Hay alguna implementación de código abierto?
- 20. Biblioteca C++ de código abierto para matemáticas vectoriales
- 21. Biblioteca de dibujo de código abierto (dwg) en C#
- 22. subclases de una biblioteca de código abierto
- 23. Biblioteca funcional Javascript con estructuras de datos persistentes
- 24. ¿Hay algún motor AI de código abierto?
- 25. Encriptar Sqlite con Qt usando alguna solución de código abierto
- 26. Lista de consultas SQL comunes para bases de datos de código abierto?
- 27. ¿Alguna recomendación para estructuras de datos profundas con Backbone?
- 28. biblioteca zip de código abierto para .NET?
- 29. ¿Hay alguna biblioteca de reconocimiento facial C# que funcione?
- 30. Estructuras de datos funcionales en C++
Ver http://stackoverflow.com/questions/649649/any-library-for-generic-datatypes-in-c/649673#649673 – qrdl