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; } }
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; }
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); } } }
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); } } }