#include "Tree.h" #include Tree::~Tree() { delete root; } Tree::Node::~Node() { delete left; delete right; } void Tree::print(std::ostream & os, Tree::Node const * const node) { if ( node ) { print(os, node->left); os << node->data << " "; print(os, node->right); } } void Tree::print(std::ostream & os) const { print(os, root); } Tree::Tree(): root{} {} void Tree::insert(int val) { insert(val, root); } void Tree::insert(int val, Node * & node) { if ( !node ) { node = new Node{val}; } else if ( node->data < val ) { insert(val, node->right); } else { insert(val, node->left); } }