Denne siden viser en samling biblioteker som vil hjelpe deg med programmering i C. Biblioteker her er åpen kildekode og brukes til å hjelpe deg med å lagre data, uten å måtte rulle din egen koblede liste osv. Datastrukturer.
Utviklet av Troy D. Hanson, hvilken som helst C-struktur kan lagres i en hasjbord ved å bruke uthash. Bare inkluder #include "uthash.h", legg deretter til en UT_hash_handle i strukturen og velg ett eller flere felt i strukturen din for å fungere som nøkkelen. Bruk deretter HASH_ADD_INT, HASH_FIND_INT og makroer til å lagre, hente eller slette elementer fra hasjbordet. Den bruker int, streng og binære nøkler.
Judy er et C-bibliotek som implementerer en sparsom dynamisk matrise. Judy arrays blir erklært ganske enkelt med null pekeren og forbruker minne bare når det er befolket. De kan vokse til å bruke alt tilgjengelig minne hvis ønskelig. Judys viktigste fordeler er skalerbarhet, høy ytelse og minneeffektivitet. Det kan brukes til matriser med dynamisk størrelse, assosiative matriser eller et brukervennlig grensesnitt som ikke krever noen omarbeiding for utvidelse eller sammentrekning og kan erstatte mange vanlige datastrukturer, for eksempel matriser, sparsomme matriser, hasjbord, B-trær, binære trær, lineære lister, skiplister, andre sorterings- og søkealgoritmer og telling funksjoner.
SGLIB er forkortelse for Simple Generic Library og består av en enkelt overskriftsfil sglib.h som gir generisk implementering av de vanligste algoritmer for matriser, lister, sorterte lister og rød-svarte trær. Biblioteket er generisk, og det definerer ikke sine egne datastrukturer. Snarere fungerer den på eksisterende brukerdefinerte datastrukturer via et generisk grensesnitt. Det fordeler heller ikke eller deler av noe minne, og er ikke avhengig av noen spesiell minneadministrasjon.
Alle algoritmer implementeres i form av makroer som er parametrisert av typen datastruktur og komparatorfunksjon (eller komparatormakro). Flere ytterligere generiske parametere som navnet på 'neste' felt for koblede lister kan være nødvendig for noen algoritmer og datastrukturer.