/* list.h */ #ifndef __LIST__H #define __LIST__H template struct Node { T value; Node *next; Node *prev; }; template class LinkedList { private: Node *pFirst, *pLast; public: // Constructor LinkedList(); // Destructor ~LinkedList(); /* Adauga un nod cu valoarea == value la inceputul listei. */ void addFirst(T value); /* Adauga un nod cu valoarea == value la sfarsitul listei. */ void addLast(T value); /* Elimina elementul de la inceputul listei si intoarce valoarea acestuia. */ T removeFirst(); /* Elimina elementul de la sfarsitul listei listei si intoarce valoarea acestuia. */ T removeLast(); /* Elimina prima aparitie a elementului care are valoarea == value. */ T removeFirstOccurrence(T value); /* Elimina ultima aparitie a elementului care are valoarea == value. */ T removeLastOccurrence(T value); /* Afiseaza elementele listei pe o singura linie, separate printr-un spatiu. */ void printList(); /* Intoarce true daca lista este vida, false altfel. */ bool isEmpty(); }; #endif