Я продолжаю добавлять первую запись 4 раза, а не один раз ... когда я добавляю свою первую запись в очередь, она добавляет ее 4 раза ... Я думал, что это может быть проблемой ... но похоже, что это не так "т.Я не могу найти, где проблема ..
Я также создал функцию печати для узлов, и она показывает, что в очереди 4 одинаковых записи, так что это не проблема печати.И это не похоже, что это в функции чтения.Может дело в логике функции добавления ??Все еще работаем над этим ..
Это вывод: 3X ^ 2 + 3X ^ 2 + 3X ^ 2 + 3X ^ 2 + 1 , но это должно быть 3X ^ 2+ 1
Это моя функция добавления:
//Append(Add) item to back of queue.
Error_code Extended_queue::append(const Queue_entry &item) {
Node<Queue_entry> *new_rear = new Node<Queue_entry>(item);
if(rear == nullptr){
front = new_rear; // I also tried rear = new_rear; front = rear; rear = new_rear;
}
else {
rear->next = new_rear;
rear = new_rear;
}
return success;
}
А вот код, который печатает вывод:
This is the node code declaration:
#ifndef NODE_H
#define NODE_H
enum Error_code{success,underflow,overflow}; // Used in node containing classes
template <class Node_entry> // Template to allow for more varience
// Part of a linked structure
struct __declspec(align(1)) Node{
Node_entry entry; // Data contained in the node
Node *next; //Pointer to next node
//constructors
Node(); // Creates empty node
Node(Node_entry item, Node *add_on = nullptr); // Creates node with specified data and pointer to next node
};
/* Post: The Node is initialized to contain nothing, and to have a null pointer.*/
template <class Node_entry>
Node<Node_entry>::Node()
{
entry = nullptr;
next = nullptr;
}
/* Post: The Node is initialized to contain item, and to point to add_on.*/
template <class Node_entry>
Node<Node_entry>::Node(Node_entry item, Node *add_on)
{
entry = item;
next = add_on;
}
#endif