void SList::removeAfterL(SListElem* e) { if (e == NULL) { removeHeadL(); } else { SListElem* deletee = e->nextL(); e->_next = deletee->nextL(); if (deletee == tailL()) _tail = e; _len--; } }
void SList::insertAfterL(SListElem* e, void* d) { if (e == tailL()) { appendL(d); } else if (e == NULL) { prependL(d); } else { SListElem* newe = new SListElem(d, e->nextL()); e->setNextL(newe); _len++; } }
void* lastL() const { return tailL()->dataL(); }