コード例 #1
0
ファイル: remove_bug.c プロジェクト: phillipberndt/bostree
BOSTree *test_tree() {
	BOSTree *t = bostree_new((BOSTree_cmp_function)strcmp, NULL);
	char i;
	for(i='A'; i<'Z'; i++) {
		char *key = malloc(2);
		key[0] = i; key[1] = 0;
		bostree_insert(t, key, NULL);
	}

	return t;
}
コード例 #2
0
int main() {
	BOSTree *tree = bostree_new((BOSTree_cmp_function)strcmp, NULL);

	char iter;
	printf("Insert test:\n");
	for(iter='A'; iter<='Z'; iter++) {
		char *data = malloc(2);
		*data = iter;
		data[1] = 0;
		printf("Insert %s, ", data);
		bostree_insert(tree, data, strdup("Value"));

		test_tree_sanity(tree);
	}

#ifndef NDEBUG
	bostree_print(tree);
#endif


	printf("\nRemove test:\n");
	for(iter='A'; iter<='Z'; iter++) {
		char data[2];
		*data = iter;
		data[1] = 0;
		printf("Remove %s, ", data);
		BOSNode *node = bostree_lookup(tree, data);
		if(node != NULL) {
			free(node->key);
		}
		else {
			printf("Lookup for %s showed it was already deleted\n", data);
			exit(1);
		}
		bostree_remove(tree, node);

		test_tree_sanity(tree);
	}
	printf("\n");

	bostree_destroy(tree);
	exit(0);
}