typedef struct Trie Trie; typedef struct Triewalk Triewalk; struct Trie { Rune rune; Trie *parent; Trie *child; Trie *next; void *value; }; struct Triewalk { Trie *root; Trie *curr; Rune *key; int keysize; int depth; }; extern int trieallocs; extern int triedebug; Trie* triealloc(void); void triefree(Trie *); void triewalk(Trie *, Triewalk *, Rune *, int); void* trienext(Triewalk *); void* trieadd(Trie *, Rune *, void *); void* triedel(Trie *, Rune *); void* trieget(Trie *, Rune *);