//******************************************************************************** // C++ Certificate Program Intermediate Spring 1999 : Stephen Philips // // Final Project // File : \\Venus\katy\C++ Certificate\intermediate\Final Project // \LeafNode.cpp // // Purpose : Implementation for class LeafNode. // // Author : Hsin-yi F. Berg // Date : 6/1/99 // Update : 6/2/99 //********************************************************************************
#include "LeafNode.h"
/* LeafNode::LeafNode(KEY word)
Default constructor for a LeafNode. key field of the LeafNode must be provided. A LeafNode is not connected to any branch when created. */
LeafNode::LeafNode(KEY word)
{ key = new char[max_char]; strcpy(key, word); // everytime we add a LeafNode with key "word", we increment value which is a // counter of how many times this word have shown, so the first time value = 1. value = 1; left = NULL; right = NULL; }
/* LeafNode::~LeafNode()
Destructor for the LeafNode. */
LeafNode::~LeafNode()
{ // since we cannot create a LeafNode without key field // we should always have a string to delete assert(key != NULL); delete[] key;
// this is recursive if(left != NULL) delete left; if(right != NULL) delete right; }
/* LeafNode *LeafNode::GetLeft(void)
Get the left pointer of this LeafNode. */ LeafNode *LeafNode::GetLeft(void) { return left; }
/* LeafNode *LeafNode::GetRight(void)
Get the right pointer of this LeafNode. */ LeafNode *LeafNode::GetRight(void) { return right; }
void LeafNode::SetLeft(LeafNode *pLeafNode) { left = pLeafNode; }
void LeafNode::SetRight(LeafNode *pLeafNode) { right = pLeafNode; }
/* void LeafNode::AddLeft(KEY word)
Set the left pointer of this LeafNode point to a new LeafNode. */ void LeafNode::AddLeft(KEY word) { assert(left == NULL);
left = new LeafNode(word); }
/* void LeafNode::AddRight(KEY word)
Set the right pointer of this LeafNode point to a new LeafNode. */ void LeafNode::AddRight(KEY word) { assert(right == NULL);
right = new LeafNode(word); }
/* KEY LeafNode::GetKey(void) const
Return the key stored in this leaf. */ KEY LeafNode::GetKey(void) const { return key; }
/* int LeafNode::GetValue(void) const
Return the value stored in this leaf. */
int LeafNode::GetValue(void) const
{ return value; }
/* void LeafNode::IncrementValue()
Increment the value of this LeafNode by 1. */ void LeafNode::IncrementValue() { value += 1; }
/* void LeafNode::Print(void) const
Print the internal data in the LeafNode. */ void LeafNode::Print(void) const { cout << key << " " << value << endl; }
Back Top