‫Bu videoda, C-sharp'ta tankları nasıl kullanacağınızı, yani bir yığına nasıl veri ekleyebileceğinizi, bir yığındaki
‫verileri nasıl düzenleyebileceğinizi vb. öğreneceksiniz.
‫Öncelikle, bir yığını nasıl tanımlayabileceğimize bakalım ve herhangi bir koleksiyonu tanımladığımıza benzer şekilde bir
‫yığını tanımlayabiliriz.
‫Yani burada stack anahtar sözcüğüne sahipsiniz ve metni kullanmak için aşağıdaki ad alanını eklemeniz gerekiyor.
‫Yığınların genel koleksiyonlar olduğunu görebilmeniz için genel koleksiyonları kullanmanız, genel koleksiyonların avantaj
‫ve dezavantajlarına sahip oldukları anlamına gelir.
‫Bu yüzden istiflemek istediğimiz türü tanımlamamız gerekir.
‫Ve bu örnekte, Stack adını verdiğim bu yığına bir grup ints yığacağım.
‫Buna yığınım diyebilirsiniz ya da nasıl isterseniz, ancak temel olarak bu, şimdi
‫veri eklemek istediğim yığınım olacak.
‫Yığınınıza bir değer eklemek için bu push yöntemini kullanmanız gerekir, böylece yığının en üstüne
‫bir nesne eklersiniz.
‫Yani bizim durumumuzda nesne integer tipinde olacaktır.
‫Böylece sadece it diyebilir ve ardından eklemek istediğiniz öğeyi girebilirsiniz ve diyelim ki
‫buna ben diyelim.
‫Yani bu, yığınımıza bir tane itecek.
‫Şimdi, yığının en üst seviyesinde ne olduğunu görmek istiyorsanız, ona göz atabiliriz.
‫Yani bu, yığının en üstündeki öğeyi kaldırmadan geri döndürecektir.
‫Yani bu üst üste yığılmış bir tepe.
‫Bu, bizim durumumuzda bize bunu verecek olan yöntemdir, çünkü bu yığında başka bir şeyimiz yok.
‫Ve temel olarak bu, yığının en üstünde yer alan öğedir.
‫Yani buraya daha fazla öğe ekleyecek olsaydık, elbette yığına eklenen son öğe bu
‫sağ satır ifadesi kullanılarak görüntülenecek olan öğe olurdu.
‫Şimdi ne elde ettiğimizi görmek için hızlıca bir göz atalım.
‫Yığındaki en üst değerin bir olduğunu görebilirsiniz.
‫Şimdi, buraya başka bir değer eklersek, örneğin bir, üç, üç, yedi, ve bunu tekrar çalıştırırsak,
‫yığının en üstündeki öğe bir, üç, üç, yedi olacaktır.
‫Şimdi yığına bir grup öğe eklemek için push kullanalım ve sonra da onlara göz atalım, çünkü bu size her göz
‫attığınızda yalnızca yığına eklenen en son öğeyi göreceğinizi gösterecektir.
‫Yani yığındaki en üst değer birdir, sonra ona iki iteriz.
‫Yığındaki en yüksek değer ikidir ve bu böyle devam eder.
‫Şimdi yığından bir öğeyi kaldırmak istiyorsanız, stack dot pop'u kullanabiliriz.
‫Bu, öğeyi kaldıracak ve pop öğeyi iade edecektir.
‫Bu durumda bir tamsayı döndürecektir, böylece bu tamsayıyı burada örneğin yığın öğemde saklayabiliriz.
‫Ve sonra örneğin
‫Bu burada çaldı.
‫Buna da şerbetçiotu diyelim.
‫Şimdi tekrar çalıştıralım.
‫Ve üçünün de patlayacağını göreceksiniz.
‫Şimdi, bir kez daha zirveye çıkarsak.
‫İşte, bir kez daha seçelim.
‫Öğeyi patlattıktan sonra göreceksiniz ki aslında artık üç değil iki olacak.
‫Böylece öğemiz üç olur ve yığındaki en üst değer iki olur.
‫Böylece pop kullanarak öğeyi depolayabilir ve daha sonra kullanabilirsiniz, ancak artık yığında olmayacaktır.
‫Bir öğeyi yığından bu şekilde kaldırırsınız.
‫Ancak bu konuda çok dikkatli olmalısınız, çünkü bunu yığında hiçbir öğenin olmadığı
‫en üstte yapmaya çalışırsanız, bu bir hataya neden olacaktır.
‫Şunu hızlıca çalıştıralım.
‫Ve burada hiçbir şey olmadığını ve uygulamamızın aslında çöktüğünü görebilirsiniz.
‫Yani burada geçersiz işlem istisnası alıyoruz çünkü boş bir yığından pop yapamıyoruz.
‫Patlayacak bir şey yok.
‫Bu yüzden önce kontrol etmekte her zaman fayda vardır.
‫Yani sadece yığın sayısı varsa.
‫Yani öğe sayısı sıfırdan büyük olduğunda bunu çalıştırmak istiyorum.
‫Bu nedenle, yığınları kullanırken göz önünde bulundurmak isteyebileceğiniz bir şey, her zaman önce
‫açılacak bir şey olup olmadığını, bir öğeyi açmak veya yığından bir öğeyi silmek isteyip istemediğinizi kontrol etmenizdir.
‫Örneğin, daha fazla öğe kalmayana kadar yığından öğeleri silecek geniş bir döngü oluşturabiliriz.
‫Bu yüzden lütfen devam edin ve bunu kendiniz deneyin.
‫Küçük bir while döngüsü oluşturun.
‫Bu tam olarak söylediğim şeyi yapacak.
‫Yani temel olarak tüm öğelerden kurtulacağız ve yığındaki tüm öğeleri atladıktan sonra yürütmeyi durduracağız.
‫Tamam.
‫Umarım denemişsinizdir.
‫Temel olarak, kontrol edeceğiz.
‫Adım sayısı sıfırdan büyük mü?
‫Eğer durum buysa, öğeyi yığından çıkarın.
‫Ayrıca, bunu doğrudan konsolumuzda görüntüleyebiliriz ve aynı zamanda kalan öğe miktarını da görüntüleyeceğiz.
‫Şimdi bunu hızlıca çalıştıralım ve üçünü nasıl kaldırdığını görelim.
‫Sonra sadece iki öğe kalır, sonra kalan iki öğeyi kaldırır ve sonra kalan
‫bir ve hiçbir öğeyi kaldırır.
‫Gördüğümüz gibi, yığından çıkardığımız öğeler ters yöndedir.
‫Onları içeri itiyoruz, yani tersine.
‫Yani burada yaprak kavramını son giren ilk çıkar şeklinde kullanıyoruz, bu da temel olarak yığına giren
‫son öğenin yığından çıkan ilk öğe olacağı anlamına geliyor.
‫Şimdi bir diziyi tersine çevirmeye bir göz atalım.
‫Artık yığınların nasıl çalıştığını, öğelerden nasıl kurtulabileceğinizi veya öğeleri nasıl ekleyebileceğinizi vb. görüyorsunuz.
‫Şimdi elimizdeki bu diziyi ele alalım.
‫Yani bir grup tamsayı içeren bir sayı dizisi.
‫Bu yüzden şimdi onları tersine çevirmek istiyorum.
‫Öyleyse devam edelim ve bununla ilgilenecek bir yığın tanımlayalım.
‫Bu yüzden öncelikle yeni bir yığın tanımlamamız gerekiyor.
‫Ve aslında bunu kendiniz de deneyebilirsiniz.
‫Bu yüzden sayıların tersine çevrileceği bu küçük uygulamayı kendiniz oluşturmaya çalışın.
‫Dolayısıyla, bu sayı dizisinin içindeki sayılar tersine çevrilmeli ve ters sırada görüntülenmelidir.
‫Yani bunları ayrı bir dizide saklamanıza gerek yoktur.
‫Konsolunuzda bunları ters sırada görüntülemeniz yeterli olacaktır.
‫Tamam.
‫Öncelikle, sayılar dizimde bulunan öğeleri görüntüleyeceğim.
‫Burada ışın içindeki sayıları görüntüleyen bir for each döngüsü kullanıyoruz ve bu şekilde
‫onları yığına ekliyoruz.
‫Bu yüzden onları yığına itiyoruz.
‫Bunu yapmanın bir yolu da bu.
‫Elbette bunu yapmanın başka yolları da var ama biz böyle yapıyoruz.
‫Numarayı ve ardından boş bir alanı görüntüleriz ve ardından bu öğeyi yığınımıza ekleriz.
‫Yani oluşturduğumuz bu yığın ve ardından sayıları tersten görüntülediğimizden emin olmamız gerekiyor.
‫Burada satır sonu oluşturmak için konsolun sağ satırını kullanıyorum.
‫Ve sonra sayıları tersten söylüyorum ve sonra sayıları gösteriyoruz.
‫Bu nedenle, yığında hala öğe olup olmadığını kontrol ederiz ve sayı daha büyük olduğu sürece sıfır olur.
‫Yığında hala öğe olduğunu biliyoruz ve son öğeyi çıkarıyoruz.
‫Bunu bir tamsayı olarak saklarız ve sonra görüntüleriz.
‫Elbette bu adımı atlayıp doğrudan bu şekilde de yapabilir ve ürünü hemen patlatabilirsiniz.
‫Bu alternatif bir yol olabilirdi, ancak şimdi bu, bu öğeyi yeniden kullanabileceğiniz bir yoldur, çünkü artık
‫bu numaraya sahipsiniz, elbette bizim özel durumumuzda numarayı hiçbir yerde kullanmıyoruz,
‫ancak kullanmak isterseniz, onu bir yerde nasıl saklayacağınızı biliyorsunuz.
‫Tamam.
‫Şimdi uygulamayı çalıştıralım ve gerçekten işe yarayıp yaramadığını görelim.
‫Gördüğünüz gibi bu bizim dizimiz ve bu da onun ters versiyonu.
‫Yani iki, altı, 743, iki, sekiz.
‫Tamam.
‫Ve temelde bu şekilde tersine çevirebilir ve yarışabilirsiniz.
‫Yani eğer bir diziyi tersine çevirme görevi alırsanız, artık bunu nasıl yapacağınızı biliyorsunuz.
‫Yani metin bunun için harika bir araç.
‫Ancak elbette, bir yaprak veya sistem kullanmak istediğinizde metinler diğer birçok durumda da çok kullanışlıdır.
‫Yani son giren ilk çıkar sistemi, bu sisteme gerçekten ihtiyaç duyacağınız pek çok uygulama,
‫gerçek dünya uygulamaları da var.
‫Tamam.
‫Bu video için bu kadar.
‫Soruları inceleyeceğimiz bir sonraki bölümde görüşmek üzere.