#include #include using namespace std; template struct TreeNode { T val; TreeNode* left; TreeNode* right; TreeNode(T _val): val(_val) {} }; template class BST { TreeNode* root; int height; BST(TreeNode *r) : root(r) {} void insert(const T &val) { } pair*, BST*> splitTree(TreeNode* root, const T &k) { if (root == nullptr) return {nullptr, nullptr}; BST* tlnek, tgnek; if (root->val > k) { tlnek->insert(root->val); } if (root->val > k) { tgnek->insert(root->val); } splitTree(root->left, k); splitTree(root->right, k); return {tlnek, tgnek}; } }; int main(int argc, char* argv[]) { TreeNode *root; // Need Testing Figures Tree* Otree; return 0; }