#ifndef NODE_HPP
#define NODE_HPP

template <class TYPE> class List;

template <class TYPE>
class Node
{
public:
	Node			(const TYPE &copy);
	~Node			();
	TYPE			getData() const;
	void			clearNode();

private:
	//This friend class allows the friend to manipulate private data directly - M. White 01 Sep, 2000
	friend class	List<TYPE>;
	TYPE			Data;
	Node<TYPE>		*next;
	Node<TYPE>		*prev;
};
template <class TYPE>
Node<TYPE>::Node(const TYPE &copy) : Data(copy), next(0), prev(0)
{
	/* Empty Function - Everything happens in declaration */
}
template <class TYPE>
TYPE Node<TYPE>::getData() const
{
	return Data;
}
template <class TYPE>
Node<TYPE>::~Node()
{
	next = NULL;
}
#endif