Kuyruk
Veri Yapıları O(1) enqueue/dequeue O(n)Dairesel tampon olarak gerçeklenen FIFO kap: arkadan eklenir, önden çıkarılır.
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 100typedef 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.