This commit is contained in:
Oleksandr Vyshniakov 2025-11-04 19:05:29 +01:00
parent af19fc388a
commit af6e9fefd6
2 changed files with 22 additions and 20 deletions

View File

@ -58,30 +58,32 @@ void cancel_train (struct car* first) {
} }
struct car* clear_train(struct car* first, const char* target) { struct car* clear_train(struct car* first, const char* target) {
if (first == NULL) { struct car* current = first;
return NULL; struct car* previous = NULL;
}
struct car* current = first; // текущий вагон while (current != NULL) {
struct car* previous = NULL; // предыдущий вагон if (strcmp(current->value, target) == 0) {
struct car* to_delete = current;
while (current !=NULL) {
if (strcmp(current->value, target)==0) { if (previous == NULL) {
if (previous==NULL) { first = current->next;
struct car* new_start = current->next; //Сохраняем адрес второго вагона current = first;
free(current); }
current = new_start; //Двигаем курсор на следующий вагон else {
first = new_start; //Обновляем начало поезда previous->next = current->next;
continue; current = previous->next;
} }
} else {
previous->next = current->next; free(to_delete);
free(current); }
current = previous->next; else {
continue; previous = current;
current = current->next;
} }
} }
previous = current;
current = current->next; return first;
} }

Binary file not shown.