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