Question 1 [5] with sample solutions
Suppose the definition of the node struct within a binary search tree is as shown below. Assume our typical binary search tree layout, i.e. smaller values go to the left.
   struct node {
      int id;      // this is the sorting key for the tree
      float data;  // additional data value associated with the key
      node *left, *right;
   };
  Implement a recursive solution for
  the countFrequency function described below.
// The function takes a data value and a node pointer as parameters, // and returns a count of how many times that value appears in the // data fields of nodes in the subtree. int countFrequency(float d, node *t);
| SAMPLE SOLUTION
int countFrequency(float d, node *t)
{
   if (t == NULL) return 0;
   int sum = countFrequency(d, t->left);
   sum += countFrequency(d, t->right);
   if (t->data == d) sum++;
   return sum;
}
 |