Algoritma ve yığın veri yapılarına kısa bir giriş

Katılım
16 Mayıs 2022
Mesajlar
324
Makaleler
3
Yığın Veri Yapısı

Bir yığın; LIFO (Last In First Out) prensibini takip eden linear yani doğrusal bir veri yapısıdır. Bu, yığının içine eklenmiş olan son öğenin ilk olarak çıkacağı anlamına gelir.

Yığın veri yapısını, birbiri üzerindeki tabak yığını olarak düşünebilirsiniz.

stack-of-plates_0.png

Burada:

* tabakların üzerine yenisini ekleyebilirsiniz,
* en üsteki tabağı kaldırabilirsiniz,
* ve eğer istiyorsanız dipdeki tabağı çıkarabilirsiniz. Bu örnek yığın veri yapısının tam olarak nasıl çalıştığını gösterir.

LIFO YIĞIN PRENSİBİ

Programlama terimlerinde, yığının tepesine bir öğe yerleştirmek "push" olarak ve bir öğeyi kaldırmak ya da çıkarmak ise "pop" olarak adlandırılır.

stack.png

Yukarıdaki resimde 3 adlı öğe son olarak eklenmesine rağmen, ilk olarak çıkarılmış yani kaldırılmıştır. Bu, LİFO prensibinin tam olarak nasıl çalıştığını gösterir.

C, C++, Java, Python veya C# gibi herhangi bir programlama dilinde bir yığın geliştirebiliriz ve mantık hemen hemen aynıdır.

TEMEL YIĞIN İŞLEMLERİ

Bir yığın üzerinde farklı işlemler yapmamıza izin veren birkaç temel işlem vardır.

Push ===> Bir yığının tepesine bir öğe ekleyin

Pop ===> Bir yığının tepesinden bir öğe silin ya da kaldırın

IsEmpty ===> Yığının boş olup olmadığını kontrol edin

Peek ===> Silmeden tepedeki öğenin değerini elde edin.

YIĞIN VERİ YAPISININ ÇALIŞMASI

Süreç aşağıdaki gibi çalışır:
1- TOP adli bir işaretleyici yığın içerisindeki en üstte bulunan öğeyi izlemek veya takip etmek için kullanılır.
2- Yığın başlatıldığında değerini -1 e ayarlarız böylece yığının boş olup olmadığını TOP == -1 ile karşılaştırarak kontrol edebiliriz.
3- Yığına bir öğe ekleme konusunda, TOP değişkeninin değerini artırırız. TOP ile işaretlenen pozisyon içerisindeki yeni öğeyi yerleştiririz.
4- Yığından bir öğe çıkarmak konusunda ise TOP değişkeniyle işaretlenmiş öğeyi dönderir ve onun değerini azaltırız.
5- Ekleme işleminden önce, yığının zaten önceden dolu olup olmadığını kontrol ederiz
6- Çıkarma ya da eksiltme işleminden önce ise, yığının zaten önceden boş olup olmadığını kontrol ederiz.

stack-operations.png
 
Son düzenleme:

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı