#include"bstree.cpp"
#include"linklist.cpp"

template<class T>
void insertList_rec(node<T> *n,list<T> *data)
{
	if (n->lptr!=0) insertList_rec(n->lptr,data);
	data->insert_after(n->item);
	if (n->rptr!=0) insertList_rec(n->rptr,data);
}

template<class T>
void sort(list<T> *data)
{
	bstree<T> sorted;

	for(data->reset();!data->end_of_list();)
	{
		sorted.insert(data->current_item());
		data->erase();
	}
	data->reset();
	insertList_rec(sorted.root(),data);
}
