Hash-bibliotek för C-programmerare

click fraud protection

Denna sida visar en samling bibliotek som hjälper dig att programmera i C. Bibliotek här är öppen källkod och används för att hjälpa dig att lagra data, utan att behöva rulla din egen länkade lista etc. datastrukturer.

Utvecklad av Troy D. Hanson, vilken C-struktur som helst kan lagras i en hashtabell med uthash. Inkludera bara #include "uthash.h", lägg sedan till en UT_hash_handle i strukturen och välj ett eller flera fält i din struktur för att fungera som nyckel. Använd sedan HASH_ADD_INT, HASH_FIND_INT och makron för att lagra, hämta eller ta bort objekt från hashtabellen. Den använder int, sträng och binära nycklar.

Judy är ett C-bibliotek som implementerar en gles dynamisk matris. Judy arrayer deklareras helt enkelt med ett noll pekare och konsumerar minne endast när den är befolkad. De kan växa till att använda allt tillgängligt minne om så önskas. Judys viktigaste fördelar är skalbarhet, hög prestanda och minneeffektivitet. Det kan användas för matriser med dynamisk storlek, associerande matriser eller ett användarvänligt gränssnitt som inte kräver någon omarbetning för expansion eller sammandragning och kan ersätta många vanliga datastrukturer, såsom matriser, glesa matriser, hash-tabeller, B-träd, binära träd, linjära listor, skiplistor, andra sorterings- och sökalgoritmer och räkning funktioner.

instagram viewer

SGLIB är förkortning för Simple Generic Library och består av en enda rubrikfil sglib.h som ger generisk implementering av de vanligaste algoritmerna för matriser, listor, sorterade listor och röd-svarta träd. Biblioteket är generiskt och det definierar inte sina egna datastrukturer. Snarare verkar det på befintliga användardefinierade datastrukturer via ett generiskt gränssnitt. Den fördelar inte heller eller delar om något minne och är inte beroende av någon speciell minneshantering.

Alla algoritmer implementeras i form av makron parametriserade av typen av datastruktur och komparatorfunktion (eller komparatormakro). Flera ytterligare generiska parametrar som namnet på "nästa" fält för länkade listor kan krävas för vissa algoritmer och datastrukturer.

instagram story viewer