#ifndef LIST_H #define LIST_H #include using namespace std; class Item; // double sqr (double x) { return x*x; } class List { private: Item * first; Item * last; public: Item * getFirst () { return first; } Item * getLast () { return last; } public: List (); // konstruktor ~ List (); // destruktor void insertFirst (string name0); void insertLast (string name0); void linkFirst (Item * p); void linkLast (Item * p); void linkBefore (Item * old, Item * p); // vloz p pred old void linkAfter (Item * old, Item * p); // vloz p za old void unlink (Item * p); // odpoj p ze seznamu void print (); void insert (string name0); void move (List & target); // presunout vsechny prvky z this do target void transfer (List & source); // presunout vsechny prvky ze source do this void reverse (); private: void link (Item * a, Item * b, Item * c); // pripoj b v poradi a, b, c // b novy, zatim neni v senamu // a predchudce, muze byt nulovy // c naslednik, muze byt nulovy }; class Item { private: string name; List * owner; Item * prev; Item * next; public: string getName () { return name; } Item * getPrev () { return prev; } Item * getNext () { return next; } public: Item (string name0 = ""); friend class List; }; #endif // LIST_H