Python - Yığın

İngilizce sözlükte kelime yığını, nesneleri diğerinin üzerine yerleştirmek anlamına gelir. Bu veri yapısında bellek tahsis edilmesiyle aynı yöntemdir. Veri öğelerini, mutfakta bir grup tabak üst üste depolanırken benzer şekilde depolar. Dolayısıyla, yığın veri yapısı, yığının tepesi olarak adlandırılabilen bir uçta işlemlere izin verir. Sadece bu yığından eleman ekleyebilir veya elemanları kaldırabiliriz.

Bir yığında, sıranın en son eklenen öğesi ilk önce çıkacaktır, çünkü yalnızca yığının üstünden kaldırabiliriz. Bu özellik Last in First Out (LIFO) özelliği olarak bilinir. Eleman ekleme ve çıkarma işlemleri olarak bilinirPUSH ve POP. Aşağıdaki programda, ekleme ve çıkarma işlevleri olarak uyguluyoruz. Boş bir liste diyoruz ve veri öğelerini eklemek ve kaldırmak için append () ve pop () yöntemlerini kullanıyoruz.

Yığın Haline İtme

class Stack:

    def __init__(self):
        self.stack = []

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
# Use peek to look at the top of the stack

    def peek(self):     
	    return self.stack[-1]

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.peek()
print(AStack.peek())
AStack.add("Wed")
AStack.add("Thu")
print(AStack.peek())

Yukarıdaki kod çalıştırıldığında aşağıdaki sonucu verir:

Tue
Thu

Yığından POP

Yığından yalnızca en üstteki veri öğesini kaldırabileceğimizi bildiğimiz gibi, bunu yapan bir python programı uygularız. Aşağıdaki programdaki kaldırma işlevi en üstteki öğeyi döndürür. İlk önce yığının boyutunu hesaplayarak en üst öğeyi kontrol ediyoruz ve ardından en üstteki öğeyi bulmak için yerleşik pop () yöntemini kullanıyoruz.

class Stack:

    def __init__(self):
        self.stack = []

    def add(self, dataval):
# Use list append method to add element
        if dataval not in self.stack:
            self.stack.append(dataval)
            return True
        else:
            return False
        
# Use list pop method to remove element
    def remove(self):
        if len(self.stack) <= 0:
            return ("No element in the Stack")
        else:
            return self.stack.pop()

AStack = Stack()
AStack.add("Mon")
AStack.add("Tue")
AStack.add("Wed")
AStack.add("Thu")
print(AStack.remove())
print(AStack.remove())

Yukarıdaki kod çalıştırıldığında aşağıdaki sonucu verir:

Thu
Wed