Добавление в сортированную сумку с использованием SLL - PullRequest
0 голосов
/ 08 апреля 2020

У меня проблема, когда я хочу добавить элементы в отсортированную сумку, представленную односвязным списком и отношением. Так что это функция добавления:

void SortedBag::add(TComp e) {
    Node** current = &this->head;

    while (*current != nullptr && rel((*current)->value, e))
    {
        current = &(*current)->next;
    }
    if (*current == nullptr || rel(e, (*current)->value))
    {
        Node* new_node = new Node;
        new_node->value = e;
        new_node->freq = 1;
        new_node->next = *current;
        *current = new_node;
    }
    else
    {
        ++(*current)->freq;
    }
}

Но если мое отношение "<=", оно не будет увеличивать частоту этого элемента. Например, я добавляю 5,6,0,5, частота 5 будет еще 1 в конце. Может кто-нибудь помочь мне, пожалуйста? Кстати, я хочу сохранить отношение как "<=", потому что оно должно пройти некоторый тест с этим. Для "<" это работает. </p>

...