Я пытаюсь удалить первый элемент очереди, но, похоже, это не работает. Вот мой код:
#include<iostream>
using namespace std;
int front = -1;
int rear = -1;
int i = 0;
const int size = 4;
int Q[size];
bool isEmpty(){
return front == -1 && rear == -1;
}
bool isFull(){
return rear == size - 1;
}
void Enqueue(int x){
if(isFull()){
cout << "The Queue is full." <<endl;
}
else if(isEmpty()){
front++;
rear++;
}
else{
rear++;
}
Q[rear] = x;
}
void Dequeue(){
if(isEmpty()){
cout << "The Queue is empty." << endl;
}
else if(front == rear){
front = -1;
rear = -1;
}
else{
front++;
}
}
void display(){
cout << "The Queue is: " << endl;
for(i = 0; i <= rear; i++){
cout << Q[i] << endl;
}
}
int main(){
Enqueue(1);
Enqueue(2);
display();
Dequeue();
display();
return 0;
}
Эта Dequeue()
функция должна удалить элемент на front
, но это не так. Это вывод, который я получаю из приведенного выше кода:
The Queue is:
1
2
The Queue is:
1
2
Вместо:
The Queue is:
1
2
The Queue is:
2
Я пробовал другие решения, но безуспешно. Я не могу обернуть голову вокруг этого. Любая помощь будет очень ценится!