Professional Documents
Culture Documents
class tree{
private:
node *root;
public:
tree(){root = NULL;}
node *getroot(){return root;}
void insert(int);
void attatchnode(node *,node *);
void inOrder(node *);
void preOrder(node *);
void postOrder(node *);
void descendingOrder(node *);
void deleteTree(node *);
bool search1(node *, int);// as boolean
node *search(node *, int);
node *min(node *);
node *minUsingLoop(node *);
int max(node *);
int count(node *);
int sum(node *);
int noOfExternalNodes(node *);
int noOfInternalNodes(node *);
double average();
double average(node *);
int height(node *);
};
void tree::attatchnode(node *r,node *p){
if(p->info < r->info){
if(r->left != NULL)
attatchnode(r->left,p);
else
r->left = p;
}
else{
if(r->right != NULL)
attatchnode(r->right,p);
else
r->right = p;
}
}
if(root == NULL)
root = p;
else
attatchnode(root , p );
}
if (r->info == k)
return true ;
if (k < r->info)
return search1(r->left , k);
if (k > r->info)
return search1(r->right , k);
}
return NULL;
}
if (r->info == k)
return r ;
if (k < r->info)
return search (r->left , k);
if (k > r->info)
return search (r->right, k);
}
return NULL;
}
double tree::average(){
if(getroot() == NULL)
return 0;
return
(double)sum(getroot())/tree::count(getroot());
}
obj.descendingOrder(obj.getroot());
cout<<endl<<endl;
65 45 30 25 18 10
Max value 65
Number of nodes = 6
Number of External nodes = 3
Number of Internal nodes = 3