Yığın gibi, kuyruk (queue) da bir listedir. Fakat, kuyrukta, ekleme bir uçtan yapılırken, silme diğer uçtan yapılır. Kuyruk elemanlarına erişim First In, First Out (FIFO) düzeni seklindedir. Bir markette ödemeyi yapmak için bekleyen müşteriler gibi, sıradaki ilk müşteri ödemeyi yapan ilk kişi olacaktır. Listenin diker bir sınırlandırılmış şeklidir. Ekleme bir uçtan yapılırken, silme de diğer uçtan yapılır.
Temel islemler
- enqueue: en arkaya (rear) eleman ekleme
- dequeue: listenin başından eleman silme
class Queue {
public:
Queue(int size = 10);
~Queue() {
delete[] values;
}
bool IsEmpty(void);
bool IsFull(void);
bool Enqueue(double x);
bool Dequeue(double & amp; x);
void DisplayQueue(void);
private:
int front;
int rear;
int counter;
int maxSize;
double * values;
};
// KUYRUK TANIMLAMALARI
Queue::Queue(int size /* = 10 */ ) {
values = new double[size];
maxSize = size;
front = 0;
rear = -1;
counter = 0;
}
// KUYRUK BOS MU DOLU MU?
bool Queue::IsEmpty() {
if (counter)
return false;
else return true;
}
bool Queue::IsFull() {
if (counter & lt; maxSize)
return false;
else return true;
}
// KUYRUK EKLEME
bool Queue::Enqueue(double x) {
if (IsFull()) {
cout & lt; & lt;
"Hata: Dolu." & lt; & lt;
endl;
return false;
} else {
position(circular)
rear = (rear + 1) % maxSize;
values[rear] = x;
counter++;
return true;
}
}
// KUYRUKTAN ÇIKARMA
bool Queue::Dequeue(double & amp; x) {
if (IsEmpty()) {
cout & lt; & lt;
"Hata: Bos" & lt; & lt;
endl;
return false;
} else {
x = values[front];
front = (front + 1) % maxSize;
counter--;
return true;
}
}




