//******************************************************************************** // C++ Certificate Program Intermediate Spring 1999 : Stephen Philips // // Final Project // File : \\Venus\katy\C++ Certificate\intermediate\Final Project // \BinaryTree.h // // Purpose : Declaration for class BinaryTree which is a collection of // LeafNodes. // // Author : Hsin-yi F. Berg // Date : 6/2/99 // Update : 6/2/99 //******************************************************************************** #ifndef BINARYTREE_H #define BINARYTREE_H #include "LeafNode.h" typedef char * KEY; typedef LeafNode *ptrLeafNode; class LeafNode; class BinaryTree { public: /* BinaryTree::BinaryTree() Default constructor for a BinaryTree. A BinaryTree is created empty. */ BinaryTree(); /* BinaryTree::~BinaryTree() Destructor for a BinaryTree. */ ~BinaryTree(); /* void BinaryTree::Add(KEY word) Add an item to the tree. */ void BinaryTree::Add(KEY word); /* void BinaryTree::Delete(KEY word) Remove an item from the tree. */ void BinaryTree::Delete(KEY word); /* bool BinaryTree::IsEmpty(void) Return true is the tree is empty. */ bool BinaryTree::IsEmpty(void); /* LeafNode *BinaryTree::Find(KEY word) Locate an item in the tree. */ LeafNode *BinaryTree::Find(KEY word); /* LeafNode &BinaryTree::First() Locate the smallest item in the tree. */ LeafNode *BinaryTree::First(); // /* // LeafNode &BinaryTree::Next() // Traverse the tree usning in-order traversal. // */ // LeafNode &BinaryTree::Next(); /* void BinaryTree::Print() const Print the internal data in the BinaryTree. */ void BinaryTree::Print() const; /* int BinaryTree::GetSize() const Get the size of the tree (number of LeafNodes in the tree). */ int BinaryTree::GetSize() const; protected: // root points to a collection of LeafNodes. LeafNode *root; // size represents how many LeaNode are there in the tree. int size; /* void BinaryTree::Destroy(LeafNode *&rpLeafNode); */ /* void BinaryTree::InsertLeafNode(LeafNode *pLinkNode, KEY word) Add the item to the left if its key is smaller, otherwise to the right. used in Add function. */ void BinaryTree::InsertLeafNode(LeafNode *pLinkNode, KEY word); /* bool BinaryTree::smaller(KEY word1, KEY word2) Comparison function for AddHelper. Return true is key1 is smaller than key2 */ bool BinaryTree::smaller(KEY word1, KEY word2); /* void BinaryTree::RemoveLeafNode(LeafNode *pLeafNode, KEY word) Remove the item with the matching key. used in Delete function. */ void BinaryTree::RemoveLeafNode(LeafNode *pLeafNode, KEY word); /* void BinaryTree::RemoveLeafNodeHelper(LeafNode *&rpLeafNode) Helper function for RemoveLeafNode to delete a specific node. pass reference of the pointer. */ void BinaryTree::RemoveLeafNodeHelper(LeafNode *&rpLeafNode); /* void BinaryTree::FindLeftMostLeafNode(LeafNode *pLeafNode) Return the left most LeafNode of the LeafNode past in. */ LeafNode *BinaryTree::FindLeftMostLeafNode(LeafNode *pLeafNode); /* LeafNode *BinaryTree::FindHelper(LeafNode pLeafNode, KEY word) Helper function for Find. */ LeafNode *BinaryTree::FindHelper(LeafNode *pLeafNode, KEY word); /* void BinaryTree::PrintHelper(LeafNode *pLeafNode) const Helper function for tree. */ void BinaryTree::PrintHelper(LeafNode *pLeafNode) const; }; #endif
Back Top