BNode.h #include class BNode { private: int data; BNode *left, *right; public: BNode (int d=0, BNode *l=NULL, BNode *r=NULL); BNode (const BNode &node); // Not necessary. For example purposes. bool operator==(int value) const; bool operator> (int value) const; bool operator< (int value) const; friend bool operator==(int value, const BNode &node); friend bool operator> (int value, const BNode &node); friend bool operator< (int value, const BNode &node); // output this node's entire subtree (left, data, and right). friend std::ostream &operator<< (std::ostream &out, const BNode &node); friend class BST; }; BNode.cpp #include "BNode.h" BNode::BNode (int d, BNode *l, BNode *r) : data (d), left (l), right (r) { } BNode::BNode (const BNode &node) : data (node.data), left (node.left), right (node.right) { } bool BNode::operator==(int value) const{ return (this->data==value); } bool BNode::operator> (int value) const{ return (this->data>value); } bool BNode::operator< (int value) const{ return (this->data (int value, const BNode &node) { return (node.data>value); } bool operator< (int value, const BNode &node) { return (node.data