ВОПРОС · Q&A

функция удаления элементов по ключу

1 ответов 3,6 тыс.
Автор вопроса
Не могу сообразить как короче и проще.
C++:
List DeleteKey(List p, int x)
{
List qpre=p;
List q=p;
List s=p;
if (p&&p->key==x)
{
q=p;
p=p->next;
s=p;
while (p)
{
while (p&&p->key!=x)
{
qpre=p;
q=p->next;
p=p->next;
} 
if (p)
{
qpre->next=p->next;
p=p->next;
}
delete q;
//}
}
p=s;
return p;
}
else
{
s=p;
while (p)
{
while (p&&p->key!=x)
{
qpre=p;
q=p->next;
p=p->next;
} 
if (p)
{
qpre->next=p->next;
p=p->next;
}
delete q;
//}
}
p=s;
return p;
}
}
 
Что такое List ?