From 036b9fbe75fc6124df4049f9b0ef736d5e751d58 Mon Sep 17 00:00:00 2001 From: Oleksandr Hryshchenko Date: Thu, 4 Nov 2021 23:23:05 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'cv4/a=5Ftrain.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cv4/a_train.c | 61 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/cv4/a_train.c b/cv4/a_train.c index 3ecfbc8..e4ca71c 100644 --- a/cv4/a_train.c +++ b/cv4/a_train.c @@ -1,18 +1,63 @@ -#include "a_train.h" #include +#include +#include +#include "a_train.h" -struct car* add_car(struct car* first,const char* target) { - return NULL; +struct car* add_car(struct car* first, const char* target){ + if(!strcmp(target, "") && !first) + return NULL; + + struct car* temp = first; + + while(temp->next != NULL) + temp = temp->next; + + temp->next = (struct car*)calloc(1, sizeof(struct car)); + strcpy(temp->next->value, target); + temp->next->next = NULL; + return first; } -void print_train(struct car* first) { +void print_train(struct car* first){ + struct car* temp = first; + + while(temp != NULL){ + printf("%s\n", temp->value); + temp = temp->next; + } } -void cancel_train(struct car* first) { +void cancel_train(struct car* first){ + if(!first) + return; + + struct car* temp = first; + struct car* next = temp->next; + + while(next != NULL){ + next = temp->next; + free(temp); + temp = next; + } + + first = NULL; } +struct car* clear_train(struct car* first, const char* target){ + if(!first || !strcmp(target, "")) + return NULL; -struct car* clear_train(struct car* first, const char* target) { - return NULL; -} + struct car* temp = first; + struct car* next = temp->next; + while(next != NULL){ + next = temp->next; + if(!strcmp(temp->value, target)) + free(temp); + temp = next; + if(!first) + first = temp; + } + + return first; +} \ No newline at end of file