63 lines
1.4 KiB
C
63 lines
1.4 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "train.h"
|
|
|
|
struct car* add_car (struct car* first, const char* target) {
|
|
struct car* novyj_vagon = (struct car*) malloc(sizeof(struct car)); // создаём новый вагон
|
|
|
|
if (novyj_vagon == NULL) {
|
|
printf("Chyba: nepodarilo sa vytvorit novy vozen!\n");
|
|
return first;
|
|
}
|
|
|
|
strncpy(novyj_vagon->value, target, SIZE - 1);
|
|
novyj_vagon->value[SIZE - 1] = '\0';
|
|
novyj_vagon->next = NULL;
|
|
|
|
if (first == NULL) {
|
|
return novyj_vagon;
|
|
}
|
|
|
|
struct car* actual = first;
|
|
while (actual->next != NULL) {
|
|
actual = actual->next;
|
|
}
|
|
actual->next = novyj_vagon;
|
|
return first;
|
|
}
|
|
|
|
void print_train (struct car* first) {
|
|
if (first == NULL) {
|
|
printf("vlak je prazdny!\n");
|
|
return;
|
|
}
|
|
|
|
struct car* actual = first;
|
|
int schet = 1;
|
|
|
|
while (actual != NULL) {
|
|
printf("%d. [%s]", schet, actual->value);
|
|
if (actual->next != NULL) {
|
|
printf(" -> ");
|
|
}
|
|
actual = actual->next;
|
|
schet++;
|
|
}
|
|
printf("\n");
|
|
}
|
|
|
|
void cancel_train (struct car* first) {
|
|
struct car* current = first;
|
|
while (current ! = NULL) {
|
|
struct car* next_one = current->next;
|
|
memset(current->value, 0, SIZE);
|
|
free(current);
|
|
current = next_one;;
|
|
}
|
|
}
|
|
|
|
|
|
int main() {
|
|
return 0;
|
|
} |