Son giren ilk çıkar prensibiyle çalışan, yalnızca tepedeki elemana erişim sağlayan veri yapısıdır.
Stack, çalışma zamanı çağrı yığınından algoritmalardaki explicit work-list kullanımına kadar birçok yerde karşımıza çıkar. Sedgewick recursion removal bölümünde, recursive çağrıların sakladığı bilgilerin explicit stack ile tutulabileceğini ve push/pop akışıyla işlenebileceğini gösterir.
Linked-list temsili kullanıldığında push yeni düğümü top referansına bağlar, pop ise top değerini döndürüp top referansını bir sonraki düğüme taşır. Array temsili de mümkündür; temel davranış LIFO olmasıdır.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1class Stack { 2 private items: T[] = [];3 push(value: T) { this.items.push(value); }4 pop(): T | undefined { return this.items.pop(); }5 peek(): T | undefined { return this.items.at(-1); }6}Komutları virgülle ayırın. Örnek: push:10, push:12, peek, pop, push:9
Komutları virgülle ayırın. Örnek: push:10, push:12, peek, pop, push:9
En İyi Durum: O(1)
Ortalama Durum: O(1)
En Kötü Durum: O(1)
O(n) - Çalışma süresi, giriş boyutu ile doğrusal olarak artar.
Stack Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar: