template // insert after node a void DLL::insertAfter( DLLNode& a, const T& el) { DLLNode *n = new DLLNode(el, a->next, a); a->next = n; if( a == tail) tail = n; else n->next->prev = n; } template // insert before node b void DLL::insertBefore( DLLNode& b, const T& el) { DLLNode *n = new DLLNode(el, b, b->prev); b->prev = n; if( b == head) head = n; else n->prev->next = n; }