2009-03-21 14 views

risposta

35

Gnome fornisce una libreria eccellente per questo, denominata Glib, con molte strutture dati utili e altre utilità pure.

25

gnulib, la libreria di portabilità di gnu.

È distribuito come codice sorgente. Questo elenco è dal suo module list, che include un TON di altre cose. Uno interessante è "c-stack: gestione dello straripamento dello stack, che causa l'uscita dal programma."

  • lista
  • array-list
  • CArray-list
  • liste concatenate
  • avltree-list
  • rbtree-list
  • linkedhash-list
  • avltreehash-list
  • rbtreehash-list
  • sottolista (tipo di dati elenco sequenziale supportato da un altro elenco.)
  • oset (Abstract insieme ordinato)
  • array-oset
  • avltree-oset
  • rbtree-oset
48

BSD queue.h ha:. Lista

  • SLIST = singolarmente concatenata
  • LISTA = lista doppiamente collegata
  • SIMPLEQ = singolarmente legata coda
  • TAILQ = doppiamente legata coda

BSD tree.h ha:

  • RB - albero rosso-nero
  • SUALIZZA - splay albero

See le pagine man queue(3) e tree(3) per i dettagli. Mi piacciono molto perché sono puri macro C senza dipendenze (nemmeno libc). Inoltre con la licenza BSD non ti devi preoccupare delle restrizioni aziendali con GPL.

15

SGLIB è un'eccellente libreria di strutture dati generiche.La biblioteca attualmente fornisce le implementazioni generiche per:
ordinamento array
liste collegate
elenchi ordinati legati
doppie liste collegate
alberi rosso-neri
contenitori hash

E 'molto veloce, più veloce di glib. È ispirato alla libreria di modelli standard. Download Here

Un'altra soluzione è Attractive Chaos software. C macro libreria:
kbtree.h: efficiente libreria B-tree in C.
khash.h: veloce e biblioteca tavolo luminoso ponderata hash in C.
kvec.h: semplice contenitore vettore in C.

Il software Sglib e Attractive Chaos è una libreria di macro C. L'utilizzo di void * per implementare contenitori generici in C può essere inefficiente. Le macro C imitano il modello C++ e sono efficienti quanto il modello C++

+0

Nizza puntatori - che non avevo mai sentito parlare di SGLIB prima . –

+0

Il collegamento "download" per il progetto SGLIB è interrotto. Sembra come andare defunto ...:/ –

+0

@ luis.espinal Può ancora essere scaricato da http://freecode.com/projects/sglib – Rob

2

L'Apache Portable Runtime.

+3

Trovato qui: https://apr.apache.org/ – n8gray

0
+0

Questo indica un pagina che dice che la biblioteca è stata spostata su http://code.google.com/p/clibutils/. – stakx

+0

E ora sembra essere: https://github.com/davinash/cstl Tuttavia non è stato aggiornato dal 2012. – domen

Problemi correlati