तो जब मैं द्विआधारी खोज वृक्ष में हटाने के लिए, मैं 7 की तरह अलग अलग मामलों यानी राशि की आवश्यकता क्यों है
- वाम पत्ता;
- राइट पत्ता;
- केवल छोड़ दिया बच्चे के साथ वाम बच्चे। // यानी नोड हटाए जाने के लिए यह के बाईं बच्चा है माता पिता है और यह केवल बच्चे छोड़ दिया है।
- केवल सही बच्चे के साथ वाम बाल।
- केवल छोड़ दिया बच्चे के साथ सही बच्चे।
- केवल सही बच्चे के साथ सही बच्चे।
- नोड हटाए जाने के लिए दोनों बच्चों दाएं और बाएं अर्थात।
अब जब इस कोड का उपयोग कर रहा है if-elseयह बहुत बुरा हो जाता है .. वहाँ ऐसा करने का कोई अन्य तरीका है।
यहाँ मेरी कोड स्निपेट है
if(current->left==NULL && current->right==NULL && current->key<prev->key) //left leaf
prev->left=NULL;
else if(current->left==NULL && current->right==NULL && current->key>prev->key) // right leaf
prev->right=NULL;
else if(current->left!=NULL && current->right==NULL && current->key<prev->key) // left child with one child
prev->left=current->left;
else if(current->left==NULL && current->right!=NULL && current->key<prev->key)
prev->left=current->right;
else if(current->left!=NULL && current->right==NULL && current->key>prev->key)
prev->right=current->left;
else if(current->left==NULL && current->right!=NULL && current->key>prev->key)
prev->right=current->left;
else if(current->left!=NULL && current->right!=NULL)
{
check=current->right;
check1=check;
while(check->left!=NULL)
{
check1=check;
check=check->left;
}
*current=*check;
check1->left=NULL;
}













