एक द्विआधारी खोज वृक्ष में सबसे छोटा तत्व ढूँढना - अनंत लूप में प्रवेश

वोट
0

मैं पुनरावर्ती विधि का उपयोग कर रहा एक द्विआधारी खोज वृक्ष बनाने के लिए। मेरे उद्देश्य पेड़ में सबसे कम तत्व मिल रहा है। नीचे मेरी कोड है।

निवेशन

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

कारण है कि (IMO) मेरी MINVALUE () अनंत लूप में प्रवेश कर रहा है curPtr की वजह से है हमेशा शून्य नहीं है। मैं कैसे यह NULL कर सकते हैं के बाद मैं डालने () फ़ंक्शन का उपयोग कर डेटा डाला है।

संपादित करें: मिला bug..so मुझे बेवकूफ। रेमंड के लिए धन्यवाद

नीचे (संपादित MINVALUE है)

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

धन्यवाद केली।

03/09/2011 को 16:09
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
10

आप अपने पाश में curPtr संशोधित कभी नहीं।

03/09/2011 को 16:13
का स्रोत उपयोगकर्ता

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