Регистрация
25 Сен 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Есть одномерный список, не получается удалить элементы, содержащие 2 или 3.
В функцию передается начало списка уже успешно созданного
void Delete(List **begin){

if(*begin==NULL)
return;

List *t = *begin;

for(int i(0);i<4;i++){
if( ((t->a.mark) == 2) || ((t->a.mark) == 3) ){
*begin = t->next;
delete t;
i=12;

}
}

List *t1 = t->next;
bool data=true;
int i=0;
while(t1){
for(int i(0);i<4;i++){
if( ((t1->a.mark) == 2) || ((t1->a.mark) == 3) ){
t->next = t1->next;
delete t1;
goto l;
}
}
l:
t=t1;
t1 = t1->next;

}
system("pause");

}
 
Назад
Сверху