Есть одномерный список, не получается удалить элементы, содержащие 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");
}
В функцию передается начало списка уже успешно созданного
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");
}