i have no idea what i have done to root or weasels, the tutorials dont make sence to me
This is such basic stuff, that you should probably be posting in the Beginners forum.
means that you are declaring a variable called root, whose type is a pointer to weasels.
root = new weasels;
means that you are dynamically allocating some memory to store an object of type weasels, and you are setting the value of the variable root to be the address of the start of the memory you're allocating.