kuyruk yapısı ne demek?

Kuyruk (Queue) Veri Yapısı

Kuyruk (Queue), bilgisayar bilimlerinde ve programlamada sıkça kullanılan temel bir veri yapısıdır. Gerçek hayattaki kuyruklara benzer şekilde, ilk giren ilk çıkar (FIFO - First In, First Out) prensibine göre çalışır. Bu prensip, kuyruğa ilk eklenen elemanın, kuyruktan ilk çıkarılacak eleman olduğu anlamına gelir.

Temel İşlemler:

  • Ekleme (Enqueue): Yeni bir elemanı kuyruğun sonuna ekler. (Ekleme İşlemi)
  • Çıkarma (Dequeue): Kuyruğun başındaki elemanı kuyruktan çıkarır. (Çıkarma İşlemi)
  • Ön (Front/Peek): Kuyruğun başındaki elemana erişir (ancak çıkarmaz).
  • 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 kuyruklarda kullanılır).

Kuyruk Türleri:

  • Doğrusal Kuyruk (Linear Queue): Elemanların doğrusal bir şekilde eklendiği ve çıkarıldığı basit kuyruk yapısıdır.
  • Dairesel Kuyruk (Circular Queue): Kuyruğun son elemanından sonra başa dönerek, kuyruğu dairesel bir şekilde kullanır. Bu, boş alanların daha verimli kullanılmasını sağlar.
  • Öncelikli Kuyruk (Priority Queue): Her elemanın bir önceliği vardır. Elemanlar, önceliklerine göre kuyruktan çıkarılır. (Öncelikli Kuyruk)
  • Çift Uçlu Kuyruk (Double-Ended Queue - Deque): Elemanların hem başından hem de sonundan eklenebildiği ve çıkarılabildiği kuyruk yapısıdır. (Çift Uçlu Kuyruk)

Kullanım Alanları:

  • İşletim Sistemleri: İşlem kuyrukları, yazdırma kuyrukları, olay yönetimi.
  • Ağ İletişimi: Veri paketlerinin sırasını koruma.
  • Veri Tabanı Yönetimi: Sorgu işleme sırası.
  • Simülasyon: Olayların sırasını modelleme.
  • CPU Zamanlama Algoritmaları: (CPU Zamanlama)

Uygulama Yöntemleri:

Kuyruklar genellikle diziler (arrays) veya bağlı listeler (linked lists) kullanılarak uygulanır. Her iki yöntemin de avantaj ve dezavantajları vardır. Diziler genellikle daha hızlı erişim sağlarken, bağlı listeler dinamik boyutlandırma imkanı sunar. (Bağlı Liste)