bool del_e(int &n, elem*& start)
{
if (start != NULL)
{
if (start->next == NULL)
{
n = start -> key;
delete start;
start = NULL;
return true;
}
else
{
elem *p = start;
elem *q =p;
while (p->next != NULL)
{
q = p;
p = p ->next;
}
n = p->key;
delete p;
p = NULL;
q ->next = NULL;
return true;
}
}
else return false;
}
bool del_n(int &n, elem*& start)
{
if (start != NULL)
{
if (start -> key = n) //first elem
{
elem * p = start;
start = start->next;
delete p;
p = NULL;
return true;
}
if(start ->next != NULL)
{
elem *p = start;
elem *q = p;
while (p->key != n && p->next != NULL)
{
q = p;
p = p->next;
}
if (p ->key == n)
{
n = p->key;
q ->next = p->next;
delete p;
p = NULL;
return true;
}
else return false;
}
else return false;
}
else return false;
}