Binary search tree insertion
<p>Need help to figure out why the following code for basic Binary Search Tree insertion is not working. Since I have been working on C# for sometime now, I'm afraid I forgot some of my C++. Also, any suggestions to improve coding style would be very helpful. (I know I'm not freeing memory as of now)</p>

<pre><code>struct Node
    {
        int data;
        Node* lChild;
        Node* rChild;

        Node(int dataNew)
        {
            data = dataNew;
            lChild = NULL;
            rChild = NULL;
        }
    };

    class BST
    {
    private:
        Node* root; 

        void Insert(int newData, Node* &amp;cRoot)  //is this correct?
        {
            if(cRoot == NULL)
            {
                cRoot = new Node(newData);
                return;
            }

            if(newData &lt; cRoot-&gt;data)
                Insert(cRoot-&gt;data, cRoot-&gt;lChild);
            else
                Insert(cRoot-&gt;data, cRoot-&gt;rChild);
        }

        void PrintInorder(Node* cRoot)
        {
            if(cRoot != NULL)
            {
                PrintInorder(cRoot-&gt;lChild);
                cout&lt;&lt; cRoot-&gt;data &lt;&lt;" ";;
                PrintInorder(cRoot-&gt;rChild);
            }
        }

    public:
        BST()
        {
            root = NULL;
        }

        void AddItem(int newData)
        {
            Insert(newData, root);
        }

        void PrintTree()
        {
            PrintInorder(root);
        }
    };

    int main()
    {
        BST *myBST = new BST();
        myBST-&gt;AddItem(5);
        myBST-&gt;AddItem(7);
        myBST-&gt;AddItem(1);
        myBST-&gt;AddItem(10);
        myBST-&gt;PrintTree();
    }
</code></pre>
