diff --git a/cv6/a_station.c b/cv6/a_station.c index 4086faa..a86b4df 100644 --- a/cv6/a_station.c +++ b/cv6/a_station.c @@ -1,3 +1,4 @@ +#include #include "a_station.h" #include #include @@ -10,9 +11,13 @@ struct station* create_station(){ } void destroy_station(struct station* station){ +<<<<<<< HEAD if (!station) return; for (int i = 0; i < station->track_count; ++i) { +======= + for (int i = 0; i < station->track_count; i++) { +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 struct car* current = station->tracks[i]; while (current) { struct car* temp = current; @@ -25,16 +30,28 @@ void destroy_station(struct station* station){ } int select_track(struct station* station, const char* target){ +<<<<<<< HEAD int sum = 0; while (*target) { sum += *target++; +======= + size_t length = strlen(target); + int sum = 0; + for (size_t i = 0; i < length; i++) { + sum += target[i]; +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 } return sum % station->track_count; } void add_target_capacity(struct station* station,const char* target, int capacity){ +<<<<<<< HEAD int index = select_track(station, target); struct car* current = station->tracks[index]; +======= + int track = select_track(station, target); + struct car* current = station->tracks[track]; +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 while (current) { if (strcmp(current->value, target) == 0) { @@ -44,6 +61,7 @@ void add_target_capacity(struct station* station,const char* target, int capacit current = current->next; } +<<<<<<< HEAD struct car* new_car = (struct car*)malloc(sizeof(struct car)); if (!new_car) return; @@ -57,6 +75,19 @@ void add_target_capacity(struct station* station,const char* target, int capacit int get_target_capacity(struct station* station,const char* target){ int index = select_track(station, target); struct car* current = station->tracks[index]; +======= + struct car* new_car = malloc(sizeof(struct car)); + strncpy(new_car->value, target, TARGET_SIZE - 1); + new_car->value[TARGET_SIZE - 1] = '\0'; + new_car->capacity = capacity; + new_car->next = station->tracks[track]; + station->tracks[track] = new_car; +} + +int get_target_capacity(struct station* station, const char* target) { + int track = select_track(station, target); + struct car* current = station->tracks[track]; +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 while (current) { if (strcmp(current->value, target) == 0) { @@ -64,6 +95,7 @@ int get_target_capacity(struct station* station,const char* target){ } current = current->next; } +<<<<<<< HEAD return 0; } @@ -73,15 +105,33 @@ int count_targets(struct station* station){ struct car* current = station->tracks[i]; while (current) { ++count; +======= + + return 0; +} + +int count_targets(struct station* station) { + int count = 0; + for (int i = 0; i < station->track_count; i++) { + struct car* current = station->tracks[i]; + while (current) { + count++; +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 current = current->next; } } return count; } +<<<<<<< HEAD int count_capacity(struct station* station){ int total_capacity = 0; for (int i = 0; i < station->track_count; ++i) { +======= +int count_capacity(struct station* station) { + int total_capacity = 0; + for (int i = 0; i < station->track_count; i++) { +>>>>>>> 2f4bf820c1657cb30626d282fd1907d4428dd2e7 struct car* current = station->tracks[i]; while (current) { total_capacity += current->capacity;