The realization of node number, height and degree of tree binary tree

Keywords: Javascript

1. Implementation of the number of nodes in the binary tree:

1, define function: count(node):

1. Count the number of nodes in the binary tree with node as the root node;

2, function code implementation:

1    /* Function defining the number of data nodes */
2     int count(BTreeNode<T>* node) const
3     {
4         return (node != NULL) ? (count(node->left) + count(node->right) + 1) : 0 ; 
5    }

3. Implementation of member function code:

1 int count() const 

2 {

3 return count(root());

4 } 

 

2. Height of binary tree:

 

1, define function: height(node):

Get the height of the binary tree with node as the root node;

2. Function code implementation:

 1     /* Define the height of binary tree with node as root node */
 2     int height(BTreeNode<T>* node) const
 3     {
 4         int ret = 0;
 5 
 6         if( node != NULL )  // Null node returns 0, recursive exit
 7         {
 8             int lh = height(node->left);
 9             int rh = height(node->right);
10             ret = ((lh > rh) ? lh : rh) + 1;
11         }
12 
13         return ret;
14     }

3. Implementation of member function code:

1 int height() const 

2 {

3 return height(root());

4 } 

 

3. Degree of tree:

 

1, define function: degree(node):

Get the degree of the binary tree with node as the root node;

2, function code implementation:

 1    /* Define the degree of binary tree with node as root node */
 2     int degree(BTreeNode<T>* node) const
 3     {
 4         int ret = 0;
 5 
 6         if( node != NULL )
 7         {
 8             // Very subtle rewriting, from bottom to top;
 9             BTreeNode<T>* child[] = { node->left, node->right};
10             ret = (!!node->left + !!node->right);  // Degree of node number
11 
12             for(int i=0; (i<2) && (ret<2); i++)  //After the degree of nodes meets the requirements, it is not required directly
13             {
14                 int d = degree(child[i]);
15 
16                 if( ret < d )
17                 {
18                     ret = d;
19                 }
20             } 
21         }
22 
23         return ret;
24    }

3. Implementation of function code:

1 int degree() const 

2 {

3 return degree(root());

4 } 

Posted by everogrin on Mon, 04 Nov 2019 12:45:20 -0800