struct Node{ int data; // Value of node Node *left; // Pointer to left subtree Node *right; // Pointer to right subtree }; // Insert function void insert(Node*& root, int key){ if(root == NULL){ root = new Node; root->data = key; root->left = NULL; root->right = NULL; } else if(key < root->data){ insert(root->left, key); } else { insert(root->right, key); } }In this code, a new node is created and the value of the node is set to the parameter passed to the function. If the root is null, the new node is set as the root. If the value of the key is less than the value of the root, the function recursively calls the left subtree with the key as the parameter. If the value of the key is greater than the value of the root, the function recursively calls the right subtree with the key as the parameter. This is a standard implementation of the BST insert function and does not require any specific package library.