Exemple #1
0
static void recursive_print(const trie_node_t *node, guint l)
{
	guint i = 0;
	guint len = 0;

	while (node) {
		printf("%s", trie_key(node) ? trie_key(node) : "ROOT");
		if (trie_child(node)) {
			if (trie_key(node))
				len = strlen(trie_key(node)) + 2;
			printf("->");
			recursive_print(trie_child(node), l + len);
		}
		if (trie_next(node))
			printf("\n");
		for (i = 0; i < l; i++)
			printf(" ");
		node = trie_next(node);
	}
}
Exemple #2
0
   ASSERT_STR_EQUAL(trie_key(iter), key3);
   ASSERT_STR_EQUAL(trie_value(iter), key3);

   iter = trie_insert(trie, key4, key4);
   ASSERT_STR_EQUAL(trie_key(iter), key4);
   ASSERT_STR_EQUAL(trie_value(iter), key4);

   iter = trie_insert(trie, key2, key2);
   ASSERT_EQUAL(iter, NULL);

   iter = trie_lookup(trie, key2);
   ASSERT_STR_EQUAL(trie_key(iter), key2);
   ASSERT_STR_EQUAL(trie_value(iter), key2);

   iter = trie_insert(trie, key5, key5);
   ASSERT_STR_EQUAL(trie_key(iter), &key5[3]);
   ASSERT_STR_EQUAL(trie_value(iter), key5);

   iter = trie_lookup(trie, key2);
   ASSERT_STR_EQUAL(trie_key(iter), key2);
   ASSERT_STR_EQUAL(trie_value(iter), key2);

   iter = trie_lookup(trie, key5);
   ASSERT_STR_EQUAL(trie_key(iter), &key5[3]);
   ASSERT_STR_EQUAL(trie_value(iter), key5);

   iter = trie_insert(trie, key6, key6);
   ASSERT_STR_EQUAL(trie_key(iter), &key6[3]);
   ASSERT_STR_EQUAL(trie_value(iter), key6); 
   
   iter = trie_insert(trie, key7, key7);