int secondSmallestInBST(struct node * tNode) {
if(tNode==NULL || (tNode->left==NULL && tNode->right==NULL)) // case 1 and 2
exit;
if(tNode->left == NULL){ // case 3
tNode=tNode->right;
while(tNode->left!=NULL){
tNode=tNode->left;
}
return tNode->data;
} // general case.
node * parent=tNode,* child = tNode->left;
while(child->left!=NULL){
parent = child;
child = child->left;
}
return parent->data;
}zweite kleinste Element in binärer Suchbaum zu finden
nicht alle Testfälle für meinen Code übergeben werden. suggerieren Sie mich, wenn in meinem Code ein Testfall fehlt. Ich finde nur das zweitkleinste Element im binären Suchbaum.
int secondSmallestInBST(struct node * tNode) {
if(tNode==NULL || (tNode->left==NULL && tNode->right==NULL)) // case 1 and 2
exit;
if(tNode->left == NULL){ // case 3
tNode=tNode->right; // find smallest in right bst.
while(tNode->left!=NULL){
tNode=tNode->left;
}
return tNode->data;
} // general case.
if(tNode->left->left==NULL && tNode->left->right!=NULL){ //missed case.
tNode=tNode->left->right;
while(tNode->left!=NULL){
tNode=tNode->left;
}
return tNode->data;
}
node * parent= tNode;
node * child = tNode->left;
while(child->left!=NULL){
parent = child;
child = child->left;
}
return parent->data;
}
// noch einige Testfälle in diesem Code fehlt.
[vollständige Code des Programms] (http://ideone.com/m6zu8D) Hier ist der vollständige Code. –
bitte, fügen Programmiersprache als Tag und, wenn Sie können, geben Sie ein Beispiel für fehlgeschlagenen Test – MrPk
@MrPk Ich frage, ob ich einige Testfall in meinem Code vergessen. –