Aktualizovat du6/a_station.c
This commit is contained in:
parent
080b124870
commit
b33e3c9c79
@ -42,7 +42,32 @@ int select_track(struct station* station, const char* target)
|
|||||||
|
|
||||||
void add_target_capacity(struct station* station,const char* target, int capacity)
|
void add_target_capacity(struct station* station,const char* target, int capacity)
|
||||||
{
|
{
|
||||||
|
//helper lok. premeny
|
||||||
|
int i = select_track(station, target);
|
||||||
|
struct car* current = station->tracks[i];
|
||||||
|
int lastPosIndex = TARGET_SIZE - 1; //index s poziciou null terminatora
|
||||||
|
|
||||||
|
//iterovnie cez vsetky tracky
|
||||||
|
//Pocas iteracie porovna pole s cielovou stanicou pre aktualny smernik/pointer (current->value) versus vstupny argument 'target'
|
||||||
|
while (current != NULL)
|
||||||
|
{
|
||||||
|
if (strcmp(current->value, target))
|
||||||
|
{
|
||||||
|
current->capacity += capacity;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Poistka -> ak neexistuje novy zaznam, vyvtori ho
|
||||||
|
struct car* newCar = malloc(sizeof(struct car));
|
||||||
|
strncpy(newCar->value, target, lastPosIndex);
|
||||||
|
new_car->value[lastPosIndex] = '\0'; //null terminovanie..
|
||||||
|
new_car->capacity = capacity;
|
||||||
|
|
||||||
|
//vlozi na zaciatok tracku
|
||||||
|
new_car->next = station->tracks[index];
|
||||||
|
station->tracks[index] = new_car;
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_target_capacity(struct station* station,const char* target)
|
int get_target_capacity(struct station* station,const char* target)
|
||||||
@ -87,5 +112,5 @@ int count_capacity(struct station* station){
|
|||||||
count += currentTracks->capacity;
|
count += currentTracks->capacity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return count;
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user