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