Untitled
unknown
plain_text
a year ago
924 B
10
Indexable
BST(vector<int>&v){
root = build(0 , v.size() - 1 , v);
// cout << root->data << endl;
}
node *build (int l , int r , vector<int>&v){
if(r >= v.size() || l > r)return NULL;
int mid = (r + l) / 2 ;
//assert(mid >= 0 && mid < v.size());
node *newnode = new node(v[mid]);
//cout << v[mid] << " " << l << " " << mid - 1 << " " << r << " " << " " << mid << endl;
newnode -> left = build( l , mid - 1 ,v);
newnode -> right = build(mid + 1 , r ,v);
return newnode;
}
void insert(int d){
root = insert(root, d);
}
node *insert(node *temp, int data){
if (temp == NULL)
return new node(data);
if(data > temp->data){
temp->right = insert(temp->right, data);
}
else{
temp->left = insert(temp->left, data);
}
}Editor is loading...
Leave a Comment