diff --git a/cv4/a_train.h b/cv4/a_train.h index 5982bfe..5708138 100644 --- a/cv4/a_train.h +++ b/cv4/a_train.h @@ -5,15 +5,32 @@ /** * Jeden vozen vlaku */ -struct car { - /** - * Nazov cielovej stanice - */ - char value[SIZE]; - /** - * Smenik na dalsi vozen - */ - struct car* next; +struct car* add_car(struct car* first, const char* target) { + // Vytvorenie noveho vozna + 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; + } + + // Inicializacia hodnot + strncpy(new_car->value, target, SIZE); + new_car->next = NULL; + + // Ak vlak neexistuje, novy vozen sa stane prvym + if (first == NULL) { + return new_car; + } + + // Najdenie posledneho vozna + struct car* temp = first; + while (temp->next != NULL) { + temp = temp->next; + } + + // Pridanie noveho vozna na koniec + temp->next = new_car; + return first; }; /**