Iterator erase(Iterator position)
{
Iterator it = NULL;
if (position->current->next)
{
it = position->current->next;
position->current->next->prev = position->current->prev;
}
else if (position->current->prev)
{
position->current->prev->next = NULL;
Tail = position->current->prev;
}
else
Head = Tail = NULL;
if (position->current->prev)
position->cureent->prev->next = position->current->next;
else if (position->current->next)
{
position->current->next->prev = NULL;
Head = position->current->next;
}
else
Head = Tail = NULL;
delete position;
if (it)
return it;
else
cout << "This element is the last element\n";
}
CUl0ZXJhdG9yIGVyYXNlKEl0ZXJhdG9yIHBvc2l0aW9uKQoJewoJCUl0ZXJhdG9yIGl0ID0gTlVMTDsKCQlpZiAocG9zaXRpb24tPmN1cnJlbnQtPm5leHQpCgkJewoJCQlpdCA9IHBvc2l0aW9uLT5jdXJyZW50LT5uZXh0OwoJCQlwb3NpdGlvbi0+Y3VycmVudC0+bmV4dC0+cHJldiA9IHBvc2l0aW9uLT5jdXJyZW50LT5wcmV2OwoJCX0KCQllbHNlIGlmIChwb3NpdGlvbi0+Y3VycmVudC0+cHJldikKCQl7CgkJCXBvc2l0aW9uLT5jdXJyZW50LT5wcmV2LT5uZXh0ID0gTlVMTDsKCQkJVGFpbCA9IHBvc2l0aW9uLT5jdXJyZW50LT5wcmV2OwoJCX0KCQllbHNlCgkJCUhlYWQgPSBUYWlsID0gTlVMTDsKCQlpZiAocG9zaXRpb24tPmN1cnJlbnQtPnByZXYpCgkJCXBvc2l0aW9uLT5jdXJlZW50LT5wcmV2LT5uZXh0ID0gcG9zaXRpb24tPmN1cnJlbnQtPm5leHQ7CgkJZWxzZSBpZiAocG9zaXRpb24tPmN1cnJlbnQtPm5leHQpCgkJewoJCQlwb3NpdGlvbi0+Y3VycmVudC0+bmV4dC0+cHJldiA9IE5VTEw7CgkJCUhlYWQgPSBwb3NpdGlvbi0+Y3VycmVudC0+bmV4dDsKCQl9CgkJZWxzZQoJCQlIZWFkID0gVGFpbCA9IE5VTEw7CgkJZGVsZXRlIHBvc2l0aW9uOwoJCWlmIChpdCkKCQkJcmV0dXJuIGl0OwoJCWVsc2UKCQkJY291dCA8PCAiVGhpcyBlbGVtZW50IGlzIHRoZSBsYXN0IGVsZW1lbnRcbiI7Cgl9