二叉搜索树

来源:互联网 发布:南京大汉网络怎么样 编辑:程序博客网 时间:2024/06/05 15:54


#include<iostream>using namespace std;struct TreeNode{int value;TreeNode *l,*r;//构造函数 TreeNode(int val=0){value=val;l=NULL;r=NULL;}};void insert(TreeNode *&r,int val){if(r==NULL){//如果没有这个节点,就建一个 r=new TreeNode(val);return;}if(val==r->value) return;//如果传入的val值小于父节点的值,就将他往左子树放 if(val<r->value) insert(r->l,val);else insert(r->r,val);}bool find(TreeNode *r,int val){if(r==NULL) return false;if(r->value==val) return true;if(val<r->value) return find(r->l,val);else return find(r->r,val);}void TreeShow(TreeNode *r){if(r==NULL) return;TreeShow(r->l);printf("%d\n",r->value);TreeShow(r->r);}int main(){TreeNode *root=NULL;int n;printf("enter the num:");//输入节点个数 scanf("%d",&n);while(n--){int a;scanf("%d",&a);//建立树 insert(root,a);}printf("Tree:\n");TreeShow(root);printf("enter find num:");scanf("%d",&n);while(n--){int a;scanf("%d",&a);if(find(root,a)) printf("have\n");else printf("Nothing\n");}return 0;}


原创粉丝点击