// MyList.cpp #include #include "MyList.h" using namespace std; MyList::MyList() { head = NULL; } MyList::~MyList() { del(head); } MyList::MyList(const MyList& orig) { head = deepCopy(orig.head); } ListElement* MyList::deepCopy(ListElement* e) { if (e == NULL) return NULL; ListElement* tmp = new ListElement( e->getValore(), deepCopy(e->getNext()) ); return tmp; } void MyList::operator=(const MyList& orig) { if (this == &orig) return; del(head); head = deepCopy(orig.head); return; } void MyList::del(ListElement* e) { if (e == NULL) return; del(e->getNext()); delete e; } void MyList::insert( int v ) { ListElement* tmp = new ListElement(v,head); head = tmp; } int MyList::pop() { if (head == NULL) return 0; // se la lista è vuota restituiamo // convenzionalmente il valore zero ListElement* tmp = head; head = head->getNext(); int v = tmp->getValore(); delete tmp; tmp = NULL; return v; } void MyList::print() { ListElement* tmp = head; while (tmp != NULL) { cout << tmp->getValore() << "\t"; tmp = tmp->getNext(); } cout << endl; }