//Ben Harris //List Node Template #ifndef _ARRAYLLN_ #define _ARRAYLLN_ #include #include #include #include "PG5.h" #include "ArrayLL.h" using namespace std; template class ArrayLL; template class ArrayLLN { private: T contents; ArrayLLN *next; public: ArrayLLN(T t, ArrayLLN *n) { // Constructor contents = t; next = n; } ~ArrayLLN() { delete next; } // Destructor void setcontents(T t) { contents = t; } // contents mutator T &getcontents() { return contents; } // contents accessor ArrayLLN *getnext() { return next; } // next ptr accessor void setnext(ArrayLLN *n) { next = n; } // next ptr mutator void removeself(ArrayLLN *curr, ArrayLLN *prev, ArrayLL *l) { // deletes curr using prev, sets l's head if !prev ArrayLLN *temp = curr->getnext(); if (prev) prev->setnext(temp); else l->sethead(temp); curr->setnext(nullptr); delete curr; } void addback(T stuff) { // adds new node at the end of the list. if (!next) next = new ArrayLLN(stuff, nullptr); else next->addback(stuff); } }; #endif