// File: tree.C // // Implementation of Tree class. Probably not the final version #include #include #include "tree.h" // Constructors Tree::Tree() { itemp = NULL ; left = right = NULL ; } Tree::Tree(data x) { itemp = new Item(x) ; left = right = NULL ; } Tree::Tree(data x, Tree *lchild, Tree *rchild) { itemp = new Item(x) ; left = lchild ; right = rchild ; } // Destructor Tree::~Tree() { // printf("Tree destructor called!\n") ; delete itemp ; delete left ; delete right ; } // Traversal methods void Tree::Inorder() { printf("(") ; if (left != NULL) left->Inorder() ; printf(" ") ; if (itemp != NULL) itemp->print() ; printf(" ") ; if (right != NULL) right->Inorder() ; printf(")") ; } void Tree::Preorder() { printf("(") ; if (itemp != NULL) itemp->print() ; printf(" ") ; if (left != NULL) left->Preorder() ; printf(" ") ; if (right != NULL) right->Preorder() ; printf(")") ; } void Tree::Postorder() { printf("(") ; if (left != NULL) left->Postorder() ; printf(" ") ; if (right != NULL) right->Postorder() ; printf(" ") ; if (itemp != NULL) itemp->print() ; printf(")") ; }