Sto cercando una libreria C con strutture dati comuni riutilizzabili come elenchi collegati, tabelle hash, ecc. Qualcosa come il sorgente distribuito con Mastering Algorithms with C (Paperback) di Kyle Loudon .
Sto cercando una libreria C con strutture dati comuni riutilizzabili come elenchi collegati, tabelle hash, ecc. Qualcosa come il sorgente distribuito con Mastering Algorithms with C (Paperback) di Kyle Loudon .
Risposte:
BSD queue.h ha:
BSD tree.h ha:
Vedere le pagine man queue (3) e tree (3) per i dettagli. Mi piacciono molto perché sono macro C pure senza dipendenze (nemmeno libc). Inoltre, con la licenza BSD non devi preoccuparti di alcuna restrizione aziendale con GPL.
gnulib , la libreria per la portabilità di gnu.
È distribuito come codice sorgente. Questo elenco proviene dal suo elenco di moduli , che include un sacco di altre cose. Uno interessante è "c-stack: gestione dell'overflow dello stack, che causa l'uscita dal programma".
SGLIB è un'eccellente libreria generica di strutture dati. La libreria attualmente fornisce implementazioni generiche per:
ordinare gli array
elenchi
collegati elenchi collegati ordinati elenchi
collegati doppi
alberi rosso-neri
contenitori con hash
È molto veloce, più veloce di disinvolto. È ispirato alla libreria di modelli standard. Scarica qui
Un'altra soluzione è il software attraente Chaos . Libreria di macro C:
kbtree.h: efficiente libreria B-tree in C.
khash.h: libreria di tabelle hash veloce e leggera in C.
kvec.h: semplice contenitore di vettori in C.
Il software Sglib e il software Chaos attraente sono librerie di macro C. Usare void * per implementare contenitori generici in C potrebbe essere inefficiente. Le macro C imitano il modello C ++ e sono efficienti quanto il modello C ++
La libreria GDSL potrebbe essere una buona cosa da considerare:
Strumenti software di AT&T .