помогите с далением в Си
Нужно удалить все данные которые находятся до ведённой даты. Помогите пожалуйста. Вот мой код: http://pastebin.com/exFBGjAK
Нужно удалить все данные которые находятся до ведённой даты. Помогите пожалуйста. Вот мой код: http://pastebin.com/exFBGjAK
Это не Вы писали:
if(j->data == g->data){
if(g == head){
if (head->next == NULL){
head = NULL;
lost = NULL;
}else{
head = g->next;
head->prev = NULL;
}
}else{
l = g->next;
g = g->prev;
g->next = l;
if(l != NULL)
l->prev = g;
if(l == NULL)
lost = g ;
}
}
так как никакого цикла нет
А надо WHILE g!=NULL и j->data != g->data
делать поиск перемещаясь к следующему.
Так как поиск идет всегда с начала и меняешь всегда head, то достаточно:
while( head != NULL ){
if(j->data == head->data) {
break; // выход из while, так как до введенной даты удалили все (введенную оставим)
}
else{
head = head->next;
head->prev = NULL;
if(head==NULL) lost = NULL;
}
}
Вот так примерно (не тестил)
а... память еще удалить надо, а то утечка будет... вот кажись все теперь