/***********************************************************************/
/* file cnt_bst_item.cc */
/* contains the implementation of class members of class */
/* cnt_bst_item. */
/***********************************************************************/
#include "cnt_bst_item.h"
/***********************************************************************/
/* implementation of class cnt_bst_item */
/***********************************************************************/
/***********************************************************************/
/* constructor */
/***********************************************************************/
template <class type>
cnt_bst_item<type>::cnt_bst_item(const type& dat, int cnt):
bst_item<type>(dat)
{
count= cnt;
}
/***********************************************************************/
/* copy constructor */
/***********************************************************************/
template <class type>
cnt_bst_item<type>::cnt_bst_item(const cnt_bst_item<type>& it):
bst_item<type>(it)
{
count= it.count;
}
/***********************************************************************/
/* public member operator= */
/* copies the data members of the passed cnt_bst_item. */
/***********************************************************************/
template <class type>
const cnt_bst_item<type>& cnt_bst_item<type>::operator=
(const cnt_bst_item<type>& it)
{
this->data= it.data;
count= it.count;
if (this->left)
{
delete this->left;
}
if (it.left)
{
this->left= new bst_item<type>(*it.left);
}
else
{
this->left= NULL;
}
if (this->right)
{
delete this->right;
}
if (it.right)
{
this->right= new bst_item<type>(*it.right);
}
else
{
this->right= NULL;
}
return it;
}