4.5 Kuyruklar (Queues)

C++ dilinde kuyruk (queue), verileri FIFO (First In, First Out - İlk Giren İlk Çıkar) mantığıyla saklayan bir veri yapısıdır. Kuyruk yapısı, verilerin ilk eklenen elemanın ilk olarak çıkarıldığı bir düzen sağlar. Kuyruklar genellikle işlem sıralama, görev yönetimi ve diğer birçok durumda kullanılır.

Kuyrukların Temel Özellikleri

  1. FIFO Yapısı: Kuyruklarda ilk eklenen eleman, ilk çıkarılan elemandır. Bu yapı, kuyrukların temel işleyiş prensibidir.

  2. İki Temel İşlem: Kuyruklar genellikle iki temel işlemle çalışır:

    • Enqueue: Kuyruğa bir eleman eklemek.

    • Dequeue: Kuyruktan bir eleman çıkarmak.

  3. En Önceki Elemanı Görme: Kuyruktaki en önceki elemanı görmek için kullanılan bir işlem vardır, bu işleme Front denir. Ancak bu işlem kuyruktan herhangi bir elemanı çıkarmaz.

Kuyrukların Kullanımı

C++'ta kuyruklar, #include <queue> ifadesi ile kullanılmaya başlanır. Aşağıda kuyrukların temel kullanımını gösteren örnekler bulunmaktadır.

Kuyruk Oluşturma ve Eleman Ekleme

#include <iostream>
#include <queue>

int main() {
    // Kuyruk oluşturma
    std::queue<int> kuyruk;

    // Eleman ekleme
    kuyruk.push(10);
    kuyruk.push(20);
    kuyruk.push(30);

    // En öncedeki elemanı yazdırma
    std::cout << "Kuyruktaki en öncedeki eleman: " << kuyruk.front() << std::endl;

    return 0;
}

Eleman Çıkarma

Kuyruktan eleman çıkarmak için pop() fonksiyonu kullanılır.

#include <iostream>
#include <queue>

int main() {
    // Kuyruk oluşturma
    std::queue<int> kuyruk;
    kuyruk.push(10);
    kuyruk.push(20);
    kuyruk.push(30);

    // Kuyruktan eleman çıkarma
    std::cout << "Kuyruktan çıkarılan eleman: " << kuyruk.front() << std::endl;
    kuyruk.pop(); // En öncedeki elemanı çıkar

    std::cout << "Yeni en öncedeki eleman: " << kuyruk.front() << std::endl;

    return 0;
}

Kuyruk Boş Mu Kontrolü

Kuyruğun boş olup olmadığını kontrol etmek için empty() fonksiyonu kullanılabilir.

#include <iostream>
#include <queue>

int main() {
    // Kuyruk oluşturma
    std::queue<int> kuyruk;

    // Kuyruğun boş olup olmadığını kontrol etme
    if (kuyruk.empty()) {
        std::cout << "Kuyruk boştur." << std::endl;
    } else {
        std::cout << "Kuyruk doludur." << std::endl;
    }

    return 0;
}

Sonuç

C++ kuyrukları, verileri FIFO düzenine göre saklamanın etkili bir yolunu sunar. Kuyruklar, eleman ekleme, çıkarma ve en öncedeki elemanı görme gibi basit ama etkili işlemlerle çalışır.

Last updated