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.
weasels *root;
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.
yes very much so, im almost able to completley grasp pointers and linked lists soon, plus its impossible to find a tut explaining new cos you cant search for the keyword :P