【发布时间】:2020-01-22 20:21:48
【问题描述】:
我有一个队列类,我在其中实现队列结构。
#include "queue.h"
Queue::Queue()
{
}
Queue::Queue(int size){
front = rear = -1;
this->size = size;
Q = new int[size];
}
void Queue::enqueue(int x){
if (rear == size -1 ){
cout << " its full" << endl;
}else{
rear ++;
Q[rear] = x;
}
}
int Queue::dequeue(){
int x= -1;
if (rear == front){
cout << " its empty"<<endl;
}else{
front ++;
x = Q[front];
}
return x;
}
void Queue::Display(){
for(int i= front+1; i<=rear; i++){
cout << Q[i] << " ";
}
cout << endl;
}
bool Queue::isEmpty(){
return (size==0);
}
int Queue::peek()
{
if (isEmpty())
{
cout << "UnderFlow\nProgram Terminated\n";
exit(EXIT_FAILURE);
}
return Q[front];
}
在 main.cpp 中,我创建了多个队列。我正在尝试实现一种调度算法,我需要按顺序处理每个队列。当我尝试遍历每个队列时,问题就开始了。我想只使用一个 for 循环来访问每个队列的元素,而不是每个队列的 for 循环。
示例:
queue[1..N] 其中 N 是队列数。在 for 循环中,我想检查 if queue[i].empty()。
【问题讨论】: