int main(void) { Trie *trie = NULL; Trie_init(&trie); /* find on empty trie. */ assert(!Trie_find(trie, (ts){0}, 1)); /* Add and find length 1. */ assert(!Trie_add(trie, (ts){0}, 1)); assert(Trie_find(trie, (ts){0}, 1)); assert(!Trie_find(trie, (ts){1}, 1)); /* Add previously added. */ assert(Trie_add(trie, (ts){0}, 1)); /* Add and find length 3 */ { assert(Trie_find(trie, (ts){0}, 1)); assert(!Trie_find(trie, (ts){0, 1}, 2)); assert(!Trie_find(trie, (ts){0, 1, 2}, 3)); assert(!Trie_add(trie, (ts){0, 1, 2}, 3)); assert(Trie_find(trie, (ts){0}, 1)); assert(!Trie_find(trie, (ts){0, 1}, 2)); assert(Trie_find(trie, (ts){0, 1, 2}, 3)); } return EXIT_SUCCESS; }
void find_and_print(Trie_typ* trie, char* to_find) { StringNode_typ* results = Trie_find(trie, to_find); StringNode_typ* iter = results; int max = 10; iterate(iter) { if (iter->value) { printf("%s\n", iter->value); if (--max < 0) { break; } } } StringNode_free(results); }