The least refined radix tree associative array is constructed over a path compressed trie. The trie is a character (byte) one, i.e. node selection uses 8 bits. Nodes having a common parent are stored as a sorted array - node selection is binary search derived. The trie is prefix compressed, i.e. common prefixes are stripped from keys and stored only once - it is possible for the data structure representation to require less memory than the sum of the stored key lengths.
The trie cannot store binary keys (strings containing null characters).
General library:
See String Key Pointer Value Array Library.
case
data structure state retriever:
int x1f4_case_s3deck(void *);
cast
plain data deletion routine:
int x1f4_cast_s3deck(void *, const char *);
copy
plain copy routine:
int x1f4_copy_s3deck(void **, void *);
fast
associative array constructor routine:
int x1f4_fast_s3deck(void *, unsigned, struct x1f4_s3deck_type *);
find
plain search routine:
int x1f4_find_s3deck(void *, const char *, const void **);
find
plain search routine:
int x1f4_find_s3path(void *, const char *, unsigned, const void **);
fini
associative array regular destructor routine:
int x1f4_fini_s3deck(void **);
flat
associative array destructor routine:
int x1f4_flat_s3deck(void *);
hook
data traversal routine:
int x1f4_hook_s3deck (void *, void *, int (*)(void *, const void *, const char *, unsigned), char *);
init
associative array regular constructor routine:
int x1f4_init_s3deck(void **, unsigned, struct x1f4_s3deck_type *);
lime
data traversal routine:
int x1f4_lime_s3deck(void *, void *, int (*)(void *, void *));
list
data traversal routine:
int x1f4_list_s3deck (void *, void *, int (*)(void *, const char *, unsigned), char *);
pass
plain data deletion routine:
int x1f4_pass_s3deck(void *, const char *);
pass
plain data deletion routine:
int x1f4_pass_s3path(void *, const char *, unsigned);
pick
plain search routine:
int x1f4_pick_s3deck(void *, const char *, const void ***);
pick
plain search routine:
int x1f4_pick_s3path(void *, const char *, unsigned, const void ***);
post
plain data insertion routine:
int x1f4_post_s3deck(void *, const char *, const void *);
post
plain data insertion routine:
int x1f4_post_s3path(void *, const char *, unsigned, const void *);