Găsirea cel mai mic element într-un binar de căutare copac - intrarea buclă infinită

voturi
0

Sunt folosind metoda recursiva pentru a crea un binar de căutare copac. Obiectivul meu este de a găsi cel mai mic element din copac. Mai jos este codul meu.

inserare

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 Funcție

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

Motivul (OMI) MINVALUE mea () intră în buclă infinită se datorează curPtr nu este întotdeauna NULL. Cum pot face NUL după ce am introdus datele folosind funcția de inserție ().

EDIT: Am găsit bug..so prostie din partea mea. Datorită Raymond

de mai jos este editat MINVALUE ()

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

Mulțumesc Kelly.

Întrebat 03/09/2011 la 16:09
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
10

Nu modificați curPtr în buclă ta.

Publicat 03/09/2011 la 16:13
sursa de către utilizator

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