void btree_test() { struct btree *node1 = btree_create(NULL, TYPE_INT, 1); struct btree *node2 = btree_create(NULL, TYPE_INT, 2); struct btree *node3 = btree_create(NULL, TYPE_INT, 3); struct btree *node4 = btree_create(NULL, TYPE_INT, 4); struct btree *node5 = btree_create(NULL, TYPE_INT, 5); struct btree *node6 = btree_create(NULL, TYPE_INT, 6); struct btree *node7 = btree_create(NULL, TYPE_INT, 7); struct btree *node8 = btree_create(NULL, TYPE_INT, 8); node1->left = node2; node1->right = node3; node2->left = node4; node2->right = node5; node3->left = node6; node3->right = node7; node4->left = node8; fprintf(stdout, "preorder:\n"); btree_preorder(node1); fprintf(stdout, "postorder:\n"); btree_postorder(node1); fprintf(stdout, "inorder:\n"); btree_inorder(node1); fprintf(stdout, "btree_search(node5, node8) = %d\n", btree_search(node5, node8)); fprintf(stdout, "btree_search(node4, node8) = %d\n", btree_search(node4, node8)); btree_destroy(node1); }
static char *test_list_existing_leafs() { leaf *root = (leaf *)malloc(sizeof(leaf)); root->value = 100; btree_put(root, 110); btree_put(root, 87); btree_put(root, 90); btree_put(root, 153); btree_put(root, 120); btree_put(root, 124); result *node = btree_inorder(root, NULL); mu_assert("The result list should not be empty", node != NULL); mu_assert("First element should be 87", node->value == 87); mu_assert("Second element should be 90", node->next->value == 90); mu_assert("Third element should be 100", node->next->next->value == 100); mu_assert("Fourth element should be 110", node->next->next->next->value == 110); mu_assert("Fifth element should be 120", node->next->next->next->next->value == 120); mu_assert("Sixth element should be 124", node->next->next->next->next->next->value == 124); mu_assert("Seventh element should be 153", node->next->next->next->next->next->next->value == 153); return 0; }