Постановка в очередь для приоритетной очереди не работает должным образом C ++ - PullRequest
1 голос
/ 05 апреля 2020

Для моего класса Computer Science я реализую класс templated Priority Queue и изо всех сил пытаюсь реализовать функцию enqueue. Я знаю, что ошибка в блоке if(value < back) функции. Вот функция:

template<class T>
bool PriorityQueue<T>::enqueue(T& value){

   if(!isEmpty()){
        if(value < back()){
        Node<T>* curr = f_ptr;
        Node<T>* prev = NULL;
        while(value > curr->data() && curr != NULL){
            prev = curr;
            curr = curr->m_next;
        }
        if(curr != NULL && value == curr->data()){
            prev = curr;
            curr = curr->m_next;
        }
        Node<T>* tmp = new Node<T>(value,curr);
        prev->m_next = tmp;
        return true;
        }else{
            b_ptr->m_next = new Node<T>(value);
            b_ptr = b_ptr->m_next;
        }
   }else{
    f_ptr = new Node<T>(value);
    b_ptr = f_ptr;
    return true;
   }
}

Все функции помощника работают правильно. Пожалуйста, объясните, какая часть моего лога c неверна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...