I don't think I'm going out on a limb by saying that a result like you posted isn't the right output. I'm at work right now taking a little break so I don't have enough time to paste your code into a project and debug it, or even look at it too closely for that matter.
But another thing of note that stood out to me was a missing destructor for your tree. With BSTs you have a lot of pointers and should be destroying your tree node-by-node via recursion. You can make a function that is called by the destructor for that.
While you don't NEED to have a struct for a node, I think it makes more sense honestly. A node doesn't need to allocate or deallocate its own memory (hence constructors or destructors), it doesn't have methods, etc. which really just lends itself to a struct (only needs data members). But I believe you can do it either way...
There are some great books and articles out there that can cover this if you don't have an instructor in-person. A quick search on Google brought up this article:
http://www.cprogramming.com/tutorial/lesson18.html, and it turns out it's by Alex Allain who's a great teacher (with both explanations and examples) of C++ topics. Looking through there just now real quick helped refresh my memory and I'm pretty sure he runs through the full implementation of a basic BST.
Feel free to ask more questions, however I believe that article will probably answer most of them. Good luck!