//BSTNode #include template class BSTNode { private: T data; BSTNode * left; BSTNode * right; public: BSTNode() { this->data = NULL; this->left = NULL; this->right = NULL; } BSTNode(T x) { this->data = x; this->left = NULL; this->right = NULL; } void setData(T x) { this->data = x; } T getData() { return this->data; } void setLeft(BSTNode * leftPtr) { this->left = leftPtr; } BSTNode * getLeft() { return this->left; } void setRight(BSTNode * rightPtr) { this->right = rightPtr; } BSTNode * getRight() { return this->right; } bool isLeaf() { if(this->left == NULL && this->right == NULL) return true; else return false; } };