Сравнить элементы одного с другим LinkedList С
Не могли ли подсказать пожалуйста как лучше, или как вообще сделать такое. Я реализовал LinkedList в чистом С при помощи structures - довольно просто - да. Но у меня возникает сложность когда таких структур две. В данном случае одна - всё гонщики, другая - лучшие на отдельных марках машины.
Мне нужно с каждым проходом проверять с каждым "лучшим" на насчёт соответствует ли марка машины, быстрее ли время, и если нет такого вообще - добавлять в "лучшие".
Вот код, который у меня получилось накалякать.
struct racers *tmp = head;
struct best *best = (struct best*) malloc(sizeof(struct best));
struct best *tmpBest4Find = best;
while (tmp != NULL) {
double bestTime = 100;
int index;
for (int i = 0; i < 5; i++) {
if(tmp->races[i] < bestTime) {
bestTime = tmp->races[i];
index = i + 1;
}
}
while (1) {
if (tmpBest4Find == NULL || (strcmp(tmp->name_auto, tmpBest4Find->name_auto) == 0 && bestTime < best->bestTime)) {
tmpBest4Find = (struct best*) malloc(sizeof(struct best));
tmpBest4Find->name_auto = tmp->name_auto;
tmpBest4Find->name = tmp->name;
tmpBest4Find->year = tmp->year;
tmpBest4Find->bestTime = bestTime;
tmpBest4Find->numberOfRace = index;
break;
}
tmpBest4Find = tmpBest4Find->next;
}
tmp = tmp->next;
printf("Марка: %s\nЛучший круг: %.3f\nВодитель: %s\nЧисло круга: %d\n\n", tmpBest4Find->name_auto, tmpBest4Find->bestTime, tmpBest4Find->name, tmpBest4Find->numberOfRace);
}
Буду очень благодарен за помощь ) Заранее благодарю