Esempio n. 1
0
void BinarySearchTree::DeleteNode( TreePtr & treePtr, DATA_TYPE val )
{

  if( treePtr == NULL )
    {
      return;
    }
  else if (val == treePtr->data )
    {
      DeleteNodeItem( treePtr );
    }
  else if (val < treePtr->data )
    {
      cout << "DeleteNode::treePtr->data: " << treePtr->data<< endl;
      cout < "   Looking left" << endl;
      DeleteNode (treePtr->leftPtr, val );
    }
  else 
    {
      cout << "DeleteNode::treePtr->data: " << treePtr->data << endl;
      cout << "  Looking right " << endl;
   
      DeleteNode (treePtr->rightPtr, val );  
    }
}
Esempio n. 2
0
void BinarySearchTree::DeleteNode(
                     TreePtr& treePtr, DATA_TYPE val )
{
#ifdef  DEBUG_DELETE
   cout << "DeleteNode::val:  " << val << endl;
#endif

   if( treePtr == NULL )
   {
      return;
   }
   else if( val == treePtr->data )
   {
      DeleteNodeItem( treePtr );
          //  was rootPtr---unexpected results
   }
   else if( val < treePtr->data )
   {
#ifdef  DEBUG_DELETE
      cout << "DeleteNode::treePtr->data:  " << treePtr->data << endl;
      cout << "     looking left" << endl;
#endif
      
      DeleteNode( treePtr->leftPtr, val );
   }
   else
   {
#ifdef  DEBUG_DELETE
      cout << "DeleteNode::treePtr->data:  " << treePtr->data << endl;
      cout << "     looking right" << endl;
#endif
      
      DeleteNode( treePtr->rightPtr, val );
   }
}