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 *);