4.6 Deque (Çift Uçlu Kuyruk)
C++ dilinde deque (double-ended queue), hem başından hem de sonundan eleman ekleyip çıkarabileceğiniz bir veri yapısıdır. Deque'ler, hem FIFO (First In, First Out - İlk Giren İlk Çıkar) hem de LIFO (Last In, First Out - Son Giren İlk Çıkar) mantığına göre çalışabilir. Bu özellikleri sayesinde, çeşitli uygulamalarda esneklik sağlar.
Deque'in Temel Özellikleri
Çift Uçlu Yapı: Elemanlar, hem ön (front) hem de arka (back) uçlardan eklenip çıkarılabilir.
Dinamik Boyutlandırma: Deque, dinamik olarak boyutlandırılabilir. Yani, eleman ekledikçe boyutu otomatik olarak büyür.
Rastgele Erişim: Deque, elemanlara rastgele erişim sağlar, bu da belirli bir indeksteki elemana doğrudan erişim imkanı sunar.
Deque Kullanımı
C++'ta deque kullanmak için #include <deque>
kütüphanesini dahil etmeniz gerekmektedir. Aşağıda deque'in temel kullanımına dair örnekler bulunmaktadır.
Deque Oluşturma ve Eleman Ekleme
#include <iostream>
#include <deque>
int main() {
// Deque oluşturma
std::deque<int> deq;
// Eleman ekleme
deq.push_back(10); // Arka uca ekleme
deq.push_front(20); // Ön uca ekleme
deq.push_back(30);
// Deque elemanlarını yazdırma
std::cout << "Deque elemanları: ";
for (const int& elem : deq) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
Eleman Çıkarma
Deque'den eleman çıkarmak için pop_back()
ve pop_front()
fonksiyonları kullanılır.
#include <iostream>
#include <deque>
int main() {
// Deque oluşturma
std::deque<int> deq;
deq.push_back(10);
deq.push_back(20);
deq.push_back(30);
// Deque'den eleman çıkarma
std::cout << "Deque'den çıkarılan ön eleman: " << deq.front() << std::endl;
deq.pop_front(); // Ön uçtan çıkar
std::cout << "Deque'den çıkarılan arka eleman: " << deq.back() << std::endl;
deq.pop_back(); // Arka uçtan çıkar
std::cout << "Kalan elemanlar: ";
for (const int& elem : deq) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
Rastgele Erişim
Deque'deki elemanlara indeks numarasıyla erişim mümkündür.
#include <iostream>
#include <deque>
int main() {
// Deque oluşturma
std::deque<int> deq = {10, 20, 30, 40};
// Rastgele erişim
std::cout << "2. indeksdeki eleman: " << deq[2] << std::endl; // 30
return 0;
}
Sonuç
C++ Deque, esnekliği sayesinde birçok uygulama için yararlı bir veri yapısıdır. Hem ön hem de arka uçlardan eleman ekleyip çıkarabilme özelliği, onu özellikle dinamik veri yapıları için uygun hale getirir.
Last updated
Was this helpful?