studio programacion para móviles libro edición desarrollo curso aplicaciones c data-structures

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.





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.