diff --git a/tests/test.c b/tests/test.c index 92cb42c6bda76394b9f963ee5c8437826bc57ed6..0d2eb54aec1fc0ff66ebc3c40d86cc20e1348d13 100644 --- a/tests/test.c +++ b/tests/test.c @@ -55,6 +55,14 @@ static MunitResult test_tree_length() nd = bst_insert(nd,62); nd = bst_insert(nd,72); nd = bst_insert(nd,82); + nd = bst_insert(nd,12); + nd = bst_insert(nd,22); + nd = bst_insert(nd,32); + nd = bst_insert(nd,42); + nd = bst_insert(nd,2); + nd = bst_insert(nd,3); + nd = bst_insert(nd,4); + nd = bst_insert(nd,5); munit_assert_ptr(nd,!=,NULL); bst_destroy(nd); return MUNIT_OK; @@ -70,6 +78,24 @@ static MunitResult test_tree_is_empty() return MUNIT_OK; } +static MunitResult test_tree_is_present() +{ + node_t* nd = bst_create(); + munit_assert_false(bst_is_present(nd,10)); + nd = bst_insert(nd,12); + nd = bst_insert(nd,22); + nd = bst_insert(nd,32); + nd = bst_insert(nd,42); + nd = bst_insert(nd,2); + nd = bst_insert(nd,3); + nd = bst_insert(nd,4); + nd = bst_insert(nd,5); + nd = bst_insert(nd,10); + munit_assert_true(bst_is_present(nd,10)); + bst_destroy(nd); + return MUNIT_OK; +} + static MunitTest test_suite_tests[] = { { @@ -112,6 +138,14 @@ static MunitTest test_suite_tests[] = { MUNIT_TEST_OPTION_NONE, NULL }, + { + (char*) "/test_tree_is_present", + test_tree_is_present, + NULL, + NULL, + MUNIT_TEST_OPTION_NONE, + NULL + }, { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL } }; diff --git a/tree.c b/tree.c index 44bf7ac2e0c21a187b06ba3f79849513eed34e17..ccd259e7e4012062ea275cc57e266e61cf4d4b1d 100644 --- a/tree.c +++ b/tree.c @@ -34,6 +34,25 @@ bool bst_is_empty(node_t *tree) return (tree == NULL)?true:false; } +bool bst_is_present(node_t *tree, int val) +{ + if(tree == NULL){return false;} + if(tree->val == val) + { + return true; + } + else + { + if(val > tree->val) + { + return bst_is_present(tree->right,val); + }else + { + return bst_is_present(tree->left,val); + } + } +} + node_t *bst_insert(node_t *tree, int val) { if(tree == NULL)