Тема: Виправлення помилки в пріоритетній черзі
Вивчаю пріоритетну чергу і написав код для додавання елементу, але елемент не додається, а програму викидує з помилкою. Не можу зрозуміти в чому проблема.
Буду вдячний, якщо допоможете дізнатись в чому проблема
#include <iostream>
using namespace std;
struct Queue {
int *priority;
int front = -1;
int back = -1;
int *array;
};
void Add(int value, Queue *queue, int priority) {
if (queue->front == -1) {
queue->front = queue->back = 0;
queue->array[queue->front] = value;
queue->priority[queue->front] = priority;
}
else {
for (int i = queue->back; i >= queue->front; i--) {
if (priority > queue->priority[i]) {
queue->array[i + 1] = queue->array[i];
queue->priority[i + 1] = queue->priority[i];
}
else {
break;
}
queue->array[i + 1] = value;
queue->priority[i + 1] = priority;
queue->back++;
}
}
}
int main() {
Queue *queue = new Queue;
Add(1, queue, 8);
Add(2, queue, 4);
Add(3, queue, 3);
delete[] queue;
system("pause");
return 0;
}