//shu_3.h
#include <iostream>
using namespace std;
struct tree
{
int data;
tree *left,*right;
};
class Btree
{
public:
tree *root;
Btree()
{
root=NULL;
}
void create(int);
void print(tree *);
int count(tree *);
};
//shu_3.app
#include "shu_3.h"
void Btree::create(int x)
{
tree *newnode=new tree;
newnode->data=x;
newnode->left=newnode->right=NULL;
if(root==NULL)
root=newnode;
else
{
tree *current=root;
tree *back;
while(current!=NULL)
{
back=current;
if(x<current->data)
current=current->left;
else
current=current->right;
}
if(x<back->data)
back->left=newnode;
else
back->right=newnode;
}
}
void Btree::print(tree *p)
{
if(p!=NULL)
{
cout<<p->data<<" ";
print(p->left);
print(p->right);
}
}
int Btree::count(tree *p)
{
if(p==NULL)
return 0;
else
return count(p->left)+count(p->right)+1;
}
//main.cpp
#include "shu_3.h"
int main()
{
Btree s;
int array[]={1,2,4,5,3};
for(int i=0;i<5;i++)
{
cout<<array[i]<<" ";
s.create(array[i]);
}
cout<<endl;
s.print(s.root);
cout<<endl;
cout<<s.count(s.root)<<endl;
return 0;
}