এই module এ আমরা কিভাবে array কে BST তে convert করা যায় সেটা দেখবো। এই প্রক্রিয়াতে আমাদের একটা array এ ছোট ছোট ভাগে ভাগ করে তাদের mid দিয়ে ছোট ছোট tree বানিয়ে সেগুলো নিয়ে বড় একট BST বানাতে হবে।
সরাসরি code এ চলে যাওয়া যাক
Node *convert(int a[], int n, int l, int r)
{
// left যদি right থেকে বড় হয় তাহলে return করবো null
if (l > r)
return NULL;
//এর পর mid calculate করা হয়েছে।
int mid = (l + r) / 2;
// Mid দিয়ে new root create করা হয়েছে
Node *root = new Node(a[mid]);
//এর পর right এ একবার এবং left এ একবার traverse করবো
Node *leftRoot = convert(a, n, l, mid - 1);
Node *rootRight = convert(a, n, mid + 1, r);
//এখন left e রাখবো left subtree right এ রাখবো right subtree
root->left = leftRoot;
root->right = rootRight;
return root;
}