Assignment #4
•	Add a pointer to Parent in BinaryTreeNode
•	Add pointer to the current node in the BSTree
•	Since we are going to get pointers to nodes, we may need a public function member to see what is inside the node
•	We add function Data() to BinaryTreeNode
•	Modify Insert and Delete so that the Parent is properly linked
•	Recursive Insert takes three parameters 
	Insert(BinaryTreeNode<T> * p, BinaryTreeNode<T> *& t, const T& x)
•	First call will be
•	Insert(0,root,x);
•	Subsequent recursive calls
•	Insert(t,t->LeftChild,x)
•	When the node gets added
	t = new BinaryTreeNode<T>;
	t->data = x;
	t->Parent = p;
•	Deletion
•	In the prune
•	Before deleting temp
	t->Parent = temp->Parent;
	delete temp;
•	Begin() sets current to the node with smallest data
•	Set current to root
•	Keep on going to the left until current doesn’t have a left child
•	return current
•	Next()
•	if current has a right child
•	current = current’s rightchild
•	while current has leftchild
•	current = current’s leftchild
•	else
while(current has a parent && current’s data > current’s Parent’s data)
	current = current’s parent
current = current’s parent // outside the loop
•	return current
•	Use Begin and Next to do problem 10 on page 499
•	Stuff records in an array
•	Call TreeSort(array)
•	TreeSort:
•	Insert the records from the array into a BSTree
•	use Begin() and Next() to pull the records from the BSTree and stuff them back into the array
•	Write an output operator for BSTree using Begin and Next()