#include "Tree.h" void Tree::insert(int data) { TreeNode* newnode = new TreeNode(data); if(root == NULL) { root = newnode; root->setParent(NULL); root->setPosition(UNKNOWN); } else { insert(newnode, root); } } void Tree::insert(TreeNode* newnode, TreeNode* curnode) { if(newnode->getData() == curnode->getData()) { cout << "Tree::insert -- Error, data already in tree" << endl; } else if(newnode->getData() < curnode->getData()) { if(curnode->getLeft() == NULL) { curnode->setLeft(newnode); newnode->setPosition(LEFT); newnode->setParent(curnode); } else { insert(newnode, curnode->getLeft()); } } else if(newnode->getData() > curnode->getData()) { if(curnode->getRight() == NULL) { curnode->setRight(newnode); newnode->setPosition(RIGHT); newnode->setParent(curnode); } else { insert(newnode, curnode->getRight()); } } } void Tree::inOrderPrint() { inOrderPrint(root); } void Tree::inOrderPrint(TreeNode* curnode) { if(curnode->getLeft() != NULL) { inOrderPrint(curnode->getLeft()); } curnode->print(); if(curnode->getRight() != NULL) { inOrderPrint(curnode->getRight()); } } void Tree::removeLeaves() { removeLeaves(root); } void Tree::removeLeaves(TreeNode* curnode) { //Your task is to complete this function. }