#ifndef _LIST_H_ #define _LIST_H_ //Linked List Node template < class listItemType > struct listNode; //Linked List Class template < class listItemType > class List { public: // constructors and destructor: List(); // default constructor List(const List < listItemType > &L); // copy constructor virtual ~ List(); // destructor // list operations: virtual bool isEmpty() const; virtual int listLength() const; virtual void listInsert(int newPosition, listItemType newItem); virtual void listDelete(int position); virtual void listRetrieve(int position, listItemType & dataItem) const; virtual void listReplace(int position, listItemType & dataItem) const; private: int Size; // number of items in list struct listNode <listItemType > *head; // pointer to linked list of items struct listNode <listItemType > *ptrTo(int position) const; // returns pointer to position'th listitem }; #include "list.cpp" #endif