#ifndef LIST_H #define LIST_H #include using namespace std; class Data; class List { private: Data * first; Data * last; public: Data * getFirst() { return first; } Data * getLast() { return last; } private: void printItem (Data * data); public: List(); ~List(); void insertFirst(Data * data); void insertLast(Data * data); void insertAfter(Data * old, Data * data); void insertBefore(Data * old, Data * data); void remove (Data * data); void purge(); void print(); }; class Data { private: Data * prev; public: string name; int r; int g; int b; private: Data * next; public: Data (); Data (string n0, int r0, int g0, int b0); Data * getPrev() { return prev; } Data * getNext() { return next; } friend class List; }; #endif // LIST_H