Сравнить элементы одного с другим 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);
    }

Буду очень благодарен за помощь ) Заранее благодарю


Ответы (0 шт):