libds - datastructures
libds
is a library providing simple datastructures. It is designed to be portable (to the point only
requiring memory allocation and ffreestanding environment).
Provided data structures
-
ds/random.h
- random number generator -
ds/array.h
- resizable array list -
ds/btree.h
- ballanced tree (red/black tree) -
ds/hmap.h
- hashmap -
ds/queue.h
- (FIFO) queue -
ds/funcops.h
- standard function interfaces used by previous data structures (along with some defined concrete functions)
Requirements
libds
requires these headers to be present at build environment:
<stdbool.h>
<stddef.h>
<stdint.h>
libds
also requires these extern functions:
extern void* malloc(size_t n)
extern void* calloc(size_t num, size_t n)
extern void* realloc(void* a, size_t n)
extern void free(void* a)
extern int strcmp(const char* a, const char* b)
extern void memset(char* c, int v, size_t s)
Building libds
To build libds, simply invoke make all
in the root directory. You will need to provide suitable SYSROOT
argument or a PREFIX
argument. INCLUDE
argument can be overwritten to change where headers will be copied to (they will always be in INCLUDE
/ds
directory).