Algoritmalar

Kuyruk

Veri Yapıları O(1) enqueue/dequeue O(n)

Dairesel tampon olarak gerçeklenen FIFO kap: arkadan eklenir, önden çıkarılır.

12
ön
5
27
arka

Kodu adım adım izlemek için bir işlem seçin.

DeğişmezÖğeler `front`'tan çıkar, `rear`'a gelir; ikisi de başa döner, böylece sıra kaydırma yapılmadan korunur.

queue.c
#define MAX 100
typedef struct {
int items[MAX];
int front, rear, size;
} Queue;
void enqueue(Queue *q, int value) {
if (q->size == MAX) return; /* full */
q->rear = (q->rear + 1) % MAX;
q->items[q->rear] = value;
q->size++;
}
int dequeue(Queue *q) {
if (q->size == 0) return -1; /* empty */
int value = q->items[q->front];
q->front = (q->front + 1) % MAX;
q->size--;
return value;
}

Kuyruk nasıl çalışır?

İlk giren ilk çıkar. Arkadan ekle, önden çıkar; dairesel tampon iki ucu sabit dizide döndürür, hiçbir eleman yer değiştirmez.

Ne zaman kullanılır?

Görev sıralama, BFS, üretici-tüketici arası tamponlama.