Tek Bağlantılı Listeyle Yığın Uygulama
Yığıt (stack), son giren ilk çıkar (Last-In-First-Out veya LIFO) prensibine göre çalışan bir veri yapısıdır. Bir yığıt, iki ana işlemi destekler: push, bir öğeyi yığına ekler, ve pop, yığından bir öğeyi çıkarır.
Tek yönlü bağlı bir liste kullanarak bir yığıt uygulamak oldukça basittir. Baş düğüm, yığının en üstündeki öğeyi temsil eder, ve bu, push ve pop işlemlerinin hızlı bir şekilde gerçekleştirilmesini sağlar.
Yığıt İmplementasyonu
class Node: def __init__(self, data=None): self.data = data self.next = None class Stack: def __init__(self): self.top = None def is_empty(self): return self.top is None def push(self, data): new_node = Node(data) new_node.next = self.top # Yeni düğüm, şu anki en üst düğüme işaret eder self.top = new_node # En üst düğümü yeni düğüm olarak güncelle def pop(self): if self.is_empty(): return None # Yığın boş ise None döndür value = self.top.data # En üst düğümün değerini al self.top = self.top.next # En üst düğümü bir önceki düğüme güncelle return value def peek(self): return None if self.is_empty() else self.top.data # En üst düğümün değerini döndür
Açıklamalar:
Push İşlemi: Yeni bir düğüm oluşturulur ve next referansı şu anki en üst düğüme işaret eder. Ardından en üst düğüm, yeni düğüm olarak güncellenir.
Pop İşlemi: En üst düğümün değeri alınır ve en üst düğüm, bir sonraki düğüme güncellenir.
Peek İşlemi: Yığının en üstündeki öğeyi döndürmek için kullanılır, ancak yığından çıkarmaz.
Is_Empty İşlemi: Yığının boş olup olmadığını kontrol etmek için kullanılır.
Tek yönlü bağlı liste ile yığının uygulanması, yığıt işlemlerini sabit zaman karmaşıklığıyla, yani O(1) ile gerçekleştirmenizi sağlar.
0 Comments
Recommended Comments
There are no comments to display.