Exemplo n.º 1
0
void BSTClass<DataType>::insertHelper
       ( 
        BSTNode<DataType> *&workingPtr,
        const DataType &newData
       )
   {
    if ( workingPtr == NULL )
       {
        workingPtr = new BSTNode<DataType>( newData, NULL, NULL );
       }

    else if ( newData.compareTo( workingPtr->dataItem ) < 0 )
       {
        insertHelper( workingPtr->left, newData );
       }

    else if ( newData.compareTo( workingPtr->dataItem ) > 0 )
       {
        insertHelper( workingPtr->right, newData);
       }

    else
       {
        workingPtr->dataItem = newData;
       }
   }
Exemplo n.º 2
0
bool BSTClass<DataType>::findItemHelper(BSTNode <DataType> *temp, DataType &value ) const
    {
        char *nameData = new char[MAX_STR_LEN];   // created to obtain the information aside from the name
        int acctNum;   
        char *acctType = new char[MAX_STR_LEN];
             
             if ( temp == NULL ) 
             {  
                return false;
             }
             else if ( value.compareTo(temp->dataItem) == 0) // within this statement, we use set and get to obtain the required info
             {
                
                temp->dataItem.getAccount(nameData, acctNum, acctType);
                value.setAccount(nameData, acctNum, acctType);
                return true;
             }
             
             if ( value.compareTo(temp->dataItem) < 0)     
                    {
                        return findItemHelper( temp->left, value );
                    }
             else if( value.compareTo(temp->dataItem) > 0)
                    {
                        return findItemHelper( temp->right, value );
                    }
                    
                    
                    delete nameData;
                    delete acctType;
                    nameData = acctType = NULL;  
                   
         return true;      
    }
Exemplo n.º 3
0
void BSTClass<DataType>::insertNodeHelper(BSTNode<DataType> *temp, const DataType &value)
{
    if(value.compareTo(temp->dataItem) < 0)
    {
        if ( temp->left == NULL)
        {
            temp->left = new BSTNode<DataType> (value, NULL, NULL);
        }
        else
        {
            insertNodeHelper((temp->left), value);
        }
    }

    else if(value.compareTo(temp->dataItem) > 0)
    {
        if( temp->right == NULL)
        {
            temp->right = new BSTNode<DataType> (value, NULL, NULL);
        }
        else
        {
            insertNodeHelper((temp->right), value);
        }
    }

}
Exemplo n.º 4
0
void BSTClass<DataType>::insertHelper(BSTNode<DataType> *rootPtr, const DataType& newData ) //add to private
{
	if(newData.compareTo(rootPtr->dataItem) < 0)
	{
		if(rootPtr->left == NULL)
		{
			rootPtr->left = new BSTNode<DataType>(newData, NULL, NULL);
			return;
		}
		else
		{
			insertHelper(rootPtr->left, newData);
		}
	}
	else
	{
		if(rootPtr->right == NULL)
		{
			rootPtr->right = new BSTNode<DataType>(newData, NULL, NULL);
			return;
		}
		else
		{
			insertHelper(rootPtr->right, newData);
		}
	}
}