Stack benzeri bir veri yapı oluyor kendileri. Yine içine istediğimiz elemenları ekleyip daha sonra geri aldığımız bir collection sınıfı diyebiliriz. Önemli olan konu yine eklediğimiz ve geri aldığımız sıra oluyor. Bu sefer stack'ın tersine son eklediğimizi ilk almıyoruz. İlk eklediğimizi ilk alıyoruz. Yine üç temel metodumuz bulunuyor, bunlar;
-Add / enqueue - kuyruğa eleman eklemek için kullanılıyor.
-Remove / dequeue - kuyruktan sıradaki elemanı almak için kullanılıyor.
-Peek - kuyrukta sıradaki elemana bakmak için kullanılıyor, ama kuyruktan eleman çıkmış olmuyor.
Buna gündelik yaptıklarımızdan örnek vermek gerekirse aklıma ilk gelen yazıcı kuyruğu. Gün içinde bir anda 4-5 tane dosya yazdırmak istediniz, her dosyanın da yazılması bir dk kadar sürsün. Sizin dosyayı yazdır butonuna tıklamanız birkaç sn sürecek. Yazdırmak belki bir kaç dk. Bu süre boyunca işletim sistemimiz ne yapıyor? Bir dosya yazdırılırken diğerini sıraya atıyor, yazılan dosya bittiğinde sıradaki dosyayı alıp yazdırmaya başlıyor.
Gerçekleştirim olarak bir dizi üzerinden yazılabilir, node tabanlı (linked) yazılabilir. Ben linked yazılanlarını daha çok beğeniyorum. Standard olarak C++/C#/java da gelir, yani birşey yazmanıza gerek yok.