терминафторрр Т терминафторрр Регистрация 25 Сен 2013 Сообщения 94 Репутация 0 Спасибо 0 Монет 0 5 Июн 2016 #1 Есть одномерный список, не получается удалить элементы, содержащие 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"); }
Есть одномерный список, не получается удалить элементы, содержащие 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"); }