Build Binary Search Tree(建立二叉查找树)
1 #include<iostream> 2 using namespace std; 3 4 struct node{ 5 int num; 6 node* left; 7 node*right; 8 }; 9 10 int pt[1000001]; 11 void buildbinnode(node*,int); 12 int main() //建立查找二叉树 13 { 14 int num,n=0; 15 while(cin>>num) 16 { 17 pt[n++]=num; 18 if(cin.get()=='\n') break; 19 } 20 node*root=NULL; 21 root->num=pt[0];root->left=NULL;root->right=NULL; 22 node*subroot=root; 23 24 for(int i=1;i<n;i++) 25 { 26 root=subroot; 27 buildbinnode(root,pt[i]); 28 } 29 30 } 31 void buildbinnode(node*root,int into) 32 { 33 if(root=NULL) 34 { 35 node* rootinto=new node; 36 rootinto->num=into;rootinto->left=NULL;rootinto->right=NULL; 37 root=rootinto; 38 return; 39 } 40 if(root->num>=into) 41 buildbinnode(root->left,into); 42 else 43 buildbinnode(root->right,into); 44 45 }