Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
895 B
1
Indexable
Never
pair<int,int> predecessorSuccessor(BinaryTreeNode<int>* root, int key)
{
    BinaryTreeNode<int>* tmp=root;
    int succ=-1;
    int pred=-1;
    while(tmp!=NULL){ //null check
        if(tmp->data==key){  //now check childs
            BinaryTreeNode<int>* lefttree=tmp->left;
        BinaryTreeNode<int>* righttree=tmp->right;
        while(lefttree!=NULL){
            pred=lefttree->data;
            lefttree=lefttree->right;
        }
        while(righttree!=NULL){
            succ=righttree->data;
            righttree=righttree->left;
        }
        break;
        }else if(tmp->data >key){   //find node with key
            succ=tmp->data;
            tmp=tmp->left;
        }else{
        pred=tmp->data;
        tmp=tmp->right;
        }
    }

    
    
    pair<int,int> ans;
    ans.first=pred;
    ans.second=succ;
    return ans;
}