2009-03-21 12 views

Respuesta

35

Gnome proporciona una excelente biblioteca para esto, llamada Glib, con muchas estructuras de datos útiles y otras utilidades también.

25

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
48

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.

15

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++

+0

punteros Niza - Nunca había oído hablar de antes SGLIB . –

+0

El enlace de "descarga" para el proyecto SGLIB está roto. Parece que va a desaparecer ...:/ –

+0

@ luis.espinal Todavía se puede descargar desde http://freecode.com/projects/sglib – Rob

2

El Apache Portable Runtime.

+3

Se encuentra aquí: https://apr.apache.org/ – n8gray

0
+0

Esto apunta a una página que dice que la biblioteca se ha movido a http://code.google.com/p/clibutils/. – stakx

+0

Y ahora parece ser: https://github.com/davinash/cstl No se ha actualizado desde 2012 sin embargo. – domen

Cuestiones relacionadas