Die Suche nach dem kleinsten Elemente in einem binären Suchbaum - Eingabe Endlosschleife

stimmen
0

Ich verwende rekursive Methode einen binären Suchbaum zu erstellen. Mein Ziel ist es, das niedrigste Element im Baum zu finden. Unten ist mein Code.

Einfügen

node insert(node root, int value)
{
        if ( root == NULL )
        {
                return ((newNode(value)));
        }

        if ( root->info == value )
        {
                std::cout<<Duplicate entry found!<<std::endl;
                return root;
        }
        else if ( root->info > value )
        {
                root->lChild = insert(root->lChild,value);
        }
        else if ( root->info < value )
        {
                root->rChild = insert(root->rChild,value);
        }
        else 
                std::cout<<Some error has occurred.Time to debug!<<std::endl;

        return root;
}

MinValue Funktion

int minValue(node curPtr)
{
        node temp = curPtr;
        while ( curPtr )
        {
                temp = curPtr->lChild;
        }
        return (temp->info);
}

Der Grund, warum (IMO) meine minValue () in Endlosschleife eintritt, aufgrund curPtr ist immer nicht NULL. Wie kann ich es NULL, nachdem ich die Daten eingefügt haben insert () Funktion.

EDIT: Fand den bug..so dumm von mir. Dank Raymond

unten ist die bearbeitete minValue ()

int  minValue(node curPtr)
{
  node temp = curPtr;
  while ( temp->lChild )
  {
     temp = temp->lChild;
  }
  return (temp->info);
}

Dank Kelly.

Veröffentlicht am 03/09/2011 um 16:09
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
10

Sie nie curPtr in der Schleife ändern.

Beantwortet am 03/09/2011 um 16:13
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more