I am getting error in my implementation of BST :     #include <iostream>

    using namespace std;


    class Node
    {
     public:
    int data;
    Node *left,*right;
    Node()
    {
        data=NULL;
        left=right=NULL;
    }
    };

    Node *insertBST(Node *root,int value)
    {
    if(root==NULL)
    {
        root->data=value;
        root->left=root->right=NULL;
    }
    if((root->data)>value)
        insertBST(root->left,value);
    if((root->data)<value)
        insertBST(root->right,value);
    }

    Node *printBST(Node *root) 
    {
    if(root!=NULL)
    {
        printBST(root->left);
        cout<<"\n"<<root->data;
        printBST(root->right);
    }
    }

    int main()
    {
    Node *root=new Node;
    insertBST(root,30);
    insertBST(root,20);
    insertBST(root,40);
    insertBST(root,70);
    insertBST(root,60);
    insertBST(root,80);
    printBST(root);
    }

Above is the code which I wrote to implement Binary Search Tree. When I execute it, the program stops responding and closes. I tried getting help from pythontutor.com but I am not able to tackle it. Any help is appreciated,I am new to writing program.