‫Bu derste yığınlar ve Q'lar hakkında konuşacağız.
‫Yığınlar ve Q'lar bilgisayar bilimindeki veri yapılarıdır.
‫Bir veri yapısı, verimli erişim ve değişiklik sağlayan bir veri organizasyonu, yönetimi ve depolama
‫biçimidir.
‫Her veri yapısının, içine eklediğimiz verileri depolamak ve yönetmek için kendine özgü bir yolu vardır.
‫Birçok farklı veri yapısı türü vardır, ancak bu derste çok yaygın olan ve bazı senaryolarda
‫verilerle uğraşmak istediğimizde kullanışlı olan iki tanesine bakacağız.
‫Hakkında konuşacağımız ilk veri yapısı adından da anlaşılacağı üzere yığındır.
‫Yığın, verileri bir yığın şeklinde depolar.
‫Üst üste yığılmış bu kaya resmine bakarsak, kaya yığınının düşmesine neden olmadan
‫ilk kayayı kolayca alabiliriz.
‫Ama ortadakileri çıkarmak mümkün değil.
‫Taş yığınının düşmesine neden olmadan ilk taşı kolayca alabiliriz, ancak ortadakileri çıkarmak
‫imkansızdır.
‫Yani ilk gelen son çıkar ya da son girer.
‫İlk olarak bir yığın temel olarak yalnızca en üstteki verileri ekler ve kaldırır.
‫Dolayısıyla bu kavram yığınları genellikle veya çok sık olarak matematiksel algoritmalarda ve işletim sistemleri tarafından
‫veri yönetiminde kullanılır.
‫Yığınları kullanırken karşılaşabileceğimiz bazı örnekler, örneğin verileri tersine çevirmektir.
‫Yani bir yığın kullanarak verileri veya sayıları tersine çevirmek çok basittir.
‫Örneğin, kullanıcıdan gelen girdiyi alıp bir yığında saklarsak, verilerin tersine
‫çevrilmesi için yığından verileri en üstten kaldırmaya başlarız.
‫Örneğin tarayıcıların geri düğmeleri vardır.
‫Bu nedenle, eğitimleri ve öğreticileri izlerken, tarayıcınız tıkladığınız web sitesi slash web sayfalarını
‫kaydedecek ve geri düğmesine basmak gittiğiniz son sayfayı yükleyecektir.
‫Ondan önceki örnek ise, ki bu da ders kitabı niteliğinde bir örnektir, işe yarayabilir.
‫Ayrıca, birçok uygulamada bulunan geri al ve yinele düğmeleri de vardır; burada temel olarak gerçekleştirilen
‫işlemi depolayan ve ardından gerçekleştirilen işlemi geri alan bir yığına sahip olursunuz.
‫Yani hem yığınlar hem de Q'lar, listeler ve sözlükler gibi koleksiyonlardır.
‫Yığınların, örneğin verileri manipüle etmek ve yönetmek için kullanabileceğimiz kendilerine özgü işlemleri vardır.
‫Ve bizim bakacaklarımızı depolayacaklar, itilecekler.
‫Böylece push yöntemini kullanarak yığına veri ekleyebiliriz.
‫Elbette veriler her zaman en üste eklenecektir.
‫Sonra pop'umuz var ve pop yöntemini kullanarak verileri yığının en üstünden kaldırabiliriz.
‫Ve son olarak, yığının üstündeki nesne verilerini kaldırmadan geri döndürecek olan peek yöntemimiz var.
‫Bu yüzden kuyruklar vardır ve seçim, programlamada yaygın olarak kullanılan başka bir veri yapısı türüdür QS, gerçek
‫hayattaki gerçek Q'lar gibi çalışır, ön masadaki ilk kişiye ilk hizmetin verildiği bir havaalanı check-in'i
‫gibi veya öndeki arabanın ilk siparişi alacağı ve yeni arabalar geldiğinde sıranın
‫arkasında beklemeleri gereken ve bize en son hizmet verilecek bir restoran gibi.
‫Bu nedenle, verilerin geldiği sıra önemli olduğunda Q'ları kullanırız.
‫Böylece veriler yalnızca arkadan eklenebilir ve önden kaldırılabilir ve ortadaki öğelere erişemez.
‫Bu FIFO sistemi.
‫Yani ilk giren ilk çıkar, örneğin işletim sistemlerinde mesajları, IO isteklerini, fare hareketlerini
‫ve benzerlerini sıraya koyarak geldikleri sırayla yürütülmelerini sağlar.
‫Ardından web isteklerini ve bunları tek tek ele alacak bir sunucuyu yönetmek.
‫Örneğin, video oyunlarında ve Street Fighter gibi kombo saldırıları olan bir dövüş oyununda, gerçekleştirilecek komboları belirlemek
‫için kullanıcı girdisini takip etmeniz gereken bir tutamaç tıkanıklığı ve sıraya koyma
‫girdisidir.
‫Yahudilerin, sakladıkları verileri manipüle etmek veya yönetmek için üzerlerinde yapabileceğimiz kendilerine özgü işlemleri vardır.
‫Örneğin, NQ yöntemini kullanarak kuyruğa veri ekleyebiliriz.
‫Elbette veriler her zaman kuyruğun arkasına eklenecektir, bu nedenle nadir olacaktır.
‫Yani tabiri caizse arkada.
‫O zaman kuyruk yöntemimiz var.
‫Kuyruk yöntemini kullanarak verileri kuyruğun önünden kaldırabiliriz.
‫Ve son olarak, kuyruğun önündeki nesneyi veya veriyi kaldırmadan geri döndürecek olan tepe yöntemimiz
‫var.
‫Yani sadece gözetliyorsunuz, ama onunla başka bir şey yapmıyorsunuz, sadece orada ne olduğuna bakıyorsunuz?
‫Ve sonra onu kullanabilirsin.
‫Şimdi C-sharp'ta yığınları ve kuyrukları gerçekte nasıl uygulayabileceğimize ve kullanabileceğimize bakacağız.