मैं एक द्विआधारी खोज वृक्ष कोडिंग कर रहा हूँ और मैं एक छोटे से प्रभावी ढंग से नोड को हटाने के लिए एक तरह से ढूंढने में कठिनाई हो रही है।
मैं इस कोड है:
struct node* deleteNode(int i, struct node *N)
{
if (N==NULL)
{
return NULL;
}
else if (i<N->value)
{
N->size--;
N->lChild=deleteNode(i,N->lChild);
}
else if (i>N->value)
{
N->size--;
N->rChild=deleteNode(i,N->rChild);
}
else if (N->lChild==NULL)
{
return N->rChild;
}
else if (N->rChild==NULL)
{
return N->lChild;
}
else
{
N->size--;
N->value=findMin(N->rChild);
N->rChild=deleteNode(N->value,N->rChild);
}
return N;
}
मूल्य, lChild, rChild, आकार, ऊंचाई: और एन एक नोड संरचना जो 5 क्षेत्रों है। वास्तव में क्या मैं यहाँ कर रहा हूँ कि मैं नोड को हटाना चाहते हैं लेकिन की ओर इंगित करने के लिए पेड़ बनाने के लिए नहीं है जब मैं की तरह कुछ डाल करने के लिए कोशिश कर रहा हूँ:
else if (N->rChild==NULL)
{
free(N);
N=NULL;
return N->lChild;
}
या हर समान लग रही कोड, यह काम नहीं करता। क्या कोई मुझे सही दिशा की और संकेत करने में सक्षम है? धन्यवाद।













