#include<iostream>
#include<vector>
using namespace std;
//和链表的数据结构一样
struct TreeNode{
int value;
TreeNode* left;
TreeNode* right;
TreeNode(int x):value(x),left(NULL),right(NULL){}
};
bool BST_search(TreeNode* node, int val){
if(node->value == val){
return true;
}
if(node->value > val){
if(node->left == NULL){
return false;
}else{
BST_search(node->left, val);
}
}else{
if(node->right == NULL){
return false;
}else{
BST_search(node->right, val);
}
}
}
int main(){
TreeNode a(8);
TreeNode b(3);
TreeNode c(10);
TreeNode d(1);
TreeNode e(6);
TreeNode f(15);
a.left =&b;
a.right = &c;
b.left = &d;
b.right = &e;
c.right = &f;
for(int i = 0; i< 18; i++){
if(BST_search(&a, i)){
cout<<i<<"is in the BST"<<endl;
}else{
cout<<i<<"is not in the BST"<<endl;
}
}
return 0;
}
二叉树的创建也可以通过类似于链表的方式创建,只是节点的链接关系不同
判断一个数是否在二叉树中,如果存在返回真
最新推荐文章于 2022-03-23 10:03:07 发布