> For the complete documentation index, see [llms.txt](https://docs.yavuzlar.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yavuzlar.org/egitim/c-plus-plus/4.0-veri-yapilari-data-structures/4.5-kuyruklar-queues.md).

# 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**

```cpp
#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.

```cpp
#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.

```cpp
#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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.yavuzlar.org/egitim/c-plus-plus/4.0-veri-yapilari-data-structures/4.5-kuyruklar-queues.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
