refresh
This commit is contained in:
parent
af19fc388a
commit
af6e9fefd6
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
du4/train.exe
BIN
du4/train.exe
Binary file not shown.
Loading…
Reference in New Issue
Block a user