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 }

 

posted on 2012-11-30 20:47  Besion王  阅读(212)  评论(0编辑  收藏  举报

导航