kuyruk ne demek?
Kuyruk (Veri Yapısı)
Kuyruk (Queue), bilgisayar bilimlerinde ve programlamada kullanılan temel bir veri yapısıdır. Gerçek hayattaki kuyruklara benzer şekilde, elemanların eklendiği ve çıkarıldığı belirli bir sıraya (FIFO - First-In, First-Out) göre çalışır. Yani, kuyruğa ilk giren eleman, kuyruktan ilk çıkar.
Temel İşlemler:
- Ekleme (Enqueue): Yeni bir elemanın kuyruğun sonuna eklenmesi işlemidir.
- Çıkarma (Dequeue): Kuyruğun başındaki elemanın kuyruktan çıkarılması işlemidir.
- Ön (Front): Kuyruğun başındaki elemana erişmektir (ancak çıkarılmaz).
- Arka (Rear): Kuyruğun sonundaki elemana erişmektir (ancak çıkarılmaz).
- Boş mu? (IsEmpty): Kuyruğun boş olup olmadığını kontrol eder.
- Dolu mu? (IsFull): Kuyruğun dolu olup olmadığını kontrol eder (genellikle sınırlı kapasiteye sahip kuyruklar için geçerlidir).
Kullanım Alanları:
Kuyruklar, çok çeşitli uygulamalarda kullanılır:
- İşlem Yönetimi: İşletim sistemlerinde, işlemleri belirli bir sıraya göre çalıştırmak için kullanılır.
- Ağ İletişimi: Ağ paketlerinin işlenmesinde ve sıraya konulmasında kullanılır.
- Yazıcı Kuyruğu: Yazdırma işlerinin sıraya konulmasında kullanılır.
- BFS (Breadth-First Search): Genişlik öncelikli arama algoritmasında kullanılır.
- Simülasyonlar: Gerçek dünya olaylarını modellemek için kullanılır (örneğin, müşteri hizmetleri kuyruğu).
Uygulama Yöntemleri:
Kuyruklar, genellikle diziler veya bağlı listeler kullanılarak uygulanabilir.
- Dizi ile Uygulama: Basit ve hızlı olabilir, ancak boyut sabittir ve genellikle en başta belirlenmesi gerekir. Dinamik dizi ile bu sorun aşılabilir.
- Bağlı Liste ile Uygulama: Boyut dinamiktir ve eleman ekleme/çıkarma işlemleri daha verimli olabilir (özellikle kuyruğun başına ekleme/çıkarma).
Kuyruk Türleri:
- Basit Kuyruk (Simple Queue): Temel FIFO prensibine göre çalışan kuyruktur.
- Dairesel Kuyruk (Circular Queue): Dizi tabanlı kuyrukların daha verimli kullanımı için tasarlanmıştır. Kuyruğun sonuna ulaşıldığında başa döner.
- Öncelik Kuyruğu (Priority Queue): Her elemanın bir önceliği vardır ve elemanlar önceliklerine göre çıkarılır. Öncelik kuyruğu, genelde yığın (heap) veri yapısı ile gerçeklenir.
- Çift Uçlu Kuyruk (Deque - Double-Ended Queue): Elemanların hem başından hem de sonundan eklenebildiği ve çıkarılabildiği kuyruktur.
Kuyruklar, algoritma ve veri yapısı derslerinde önemli bir yere sahiptir ve birçok farklı problem için çözüm sunarlar.