Class Node

{public:

Node(){}

virtual ~Node(){}

virtual Node* Insert(Data* theData)=0;

virtual void Show()=0;

private:

};

class InternalNode:public Node

{public:

InternalNode(Data *theData, Node *next) ;

~InternalNode(){delete myNext,delete myData;}

virtual Node* Insert(Data *theData);

virtual void Show() {myData->Show();myNext->Show();}

private:

Data* myData;

Node* myNext;

};

InternalNode::InternalNode(Data *theData,Node*next):