Answer: The new program with the required constructor and with a test is given below Code: #include #include using namespace std; class TNode { public: int data; TNode *left; TNode *right; TNode(int n){ data = n; left = right = 0; } TNode(int n, TNode *left, TNode *right) { data = n; //Assign the left node address and right node address with the parameters passed this->left = left; this->right = right; } }; void printTree(TNode *t) { if (!t) return; printTree(t->left); cout << t->data << \" \"; printTree(t->right); } void search_for(int n, TNode *t) { cout << \"Searhing for \" << n << endl; while (t) { cout << \"looking at \" << t->data << endl; if (t->data == n) { cout << \"Found it!\"; return; } if (n < t->data) { cout << \"Going left\ \"; t = t->left; } else { cout << \"Going right\ \"; t = t->right; } } cout << \"Can\\\'t find it\"; } // Creates a two node tree int main() { TNode *root = 0; root = new TNode(5); cout << root->data << endl; TNode *one_node = new TNode(1); TNode *three_node = new TNode(3); //use the new constructor TNode *two_node = new TNode(2, one_node, three_node); root->left = new TNode(3); printTree(root); cout << endl; search_for(3, root); getchar(); return 0; } Solution Answer: The new program with the required constructor and with a test is given below Code: #include #include using namespace std; class TNode { public: int data; TNode *left; TNode *right; TNode(int n){ data = n; left = right = 0; } TNode(int n, TNode *left, TNode *right) { data = n; //Assign the left node address and right node address with the parameters passed this->left = left; this->right = right; } }; void printTree(TNode *t) { if (!t) return; printTree(t->left); cout << t->data << \" \"; printTree(t->right); } void search_for(int n, TNode *t) { cout << \"Searhing for \" << n << endl; while (t) { cout << \"looking at \" << t->data << endl; if (t->data == n) { cout << \"Found it!\"; return; } if (n < t->data) { cout << \"Going left\ \"; t = t->left; } else { cout << \"Going right\ \"; t = t->right; } } cout << \"Can\\\'t find it\"; } // Creates a two node tree int main() { TNode *root = 0; root = new TNode(5); cout << root->data << endl; TNode *one_node = new TNode(1); TNode *three_node = new TNode(3); //use the new constructor TNode *two_node = new TNode(2, one_node, three_node); root->left = new TNode(3); printTree(root); cout << endl; search_for(3, root); getchar(); return 0; }.