Είμαι με τη χρήση επαναληπτικής μεθόδου για τη δημιουργία ενός Binary Search Tree. Στόχος μου είναι να βρούμε τη χαμηλότερη στοιχείο στο δέντρο. Παρακάτω είναι ο κωδικός μου.
Εισαγωγή
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
int minValue(node curPtr)
{
node temp = curPtr;
while ( curPtr )
{
temp = curPtr->lChild;
}
return (temp->info);
}
Ο λόγος για τον οποίο (ΙΜΟ) MINVALUE μου () εισέρχεται σε άπειρο βρόχο οφείλεται σε curPtr είναι πάντα δεν είναι NULL. Πώς μπορώ να κάνω είναι NULL μετά έχω εισαχθεί τα δεδομένα χρησιμοποιώντας ένθετο () συνάρτηση.
EDIT: Βρέθηκε το bug..so βλακεία μου. Χάρη στην Raymond
παρακάτω είναι η επεξεργασία MINVALUE ()
int minValue(node curPtr)
{
node temp = curPtr;
while ( temp->lChild )
{
temp = temp->lChild;
}
return (temp->info);
}
Ευχαριστώ Kelly.













