#include "a_train.h" #include #include #include struct car* add_car(struct car* first, const char* target) { struct car* new_car = (struct car*)malloc(sizeof(struct car)); if (new_car == NULL) { printf("Chyba: Nepodarilo sa alokovať pamäť pre nový vozeň.\n"); return first; } strncpy(new_car->value, target, SIZE); new_car->next = NULL; if (first == NULL) { return new_car; } struct car* temp = first; while (temp->next != NULL) { temp = temp->next; } temp->next = new_car; return first; } void print_train(struct car* first) { if (first == NULL) { printf("Vlak je prazdny.\n"); return; } struct car* temp = first; while (temp != NULL) { printf("Cielova stanica: %s\n", temp->value); temp = temp->next; } } void cancel_train(struct car* first) { struct car* temp; while (first != NULL) { temp = first; first = first->next; free(temp); } printf("Vsetky vozne boli zrusene.\n"); } struct car* clear_train(struct car* first, const char* target) { struct car* current = first; struct car* previous = NULL; while (current != NULL) { // Porovnanie hodnoty cielovej stanice if (strcmp(current->value, target) == 0) { // Ak sa cielova stanica zhoduje, odstráni vozeň if (previous == NULL) { // Ak je to prvý vozeň first = current->next; } else { previous->next = current->next; } struct car* temp = current; current = current->next; free(temp); } else { // Ak sa nezhoduje, prejde na nasledujúci vozeň previous = current; current = current->next; } } return first; }