Python - Stapel
Im englischen Wörterbuch bedeutet der Wortstapel, Objekte übereinander anzuordnen. Auf die gleiche Weise wird Speicher in dieser Datenstruktur zugewiesen. Es speichert die Datenelemente auf ähnliche Weise wie ein Stapel Teller übereinander in der Küche. Die Stapeldatenstruktur ermöglicht also Operationen an einem Ende, die als Oberseite des Stapels bezeichnet werden können. Wir können Elemente hinzufügen oder entfernen, die nur aus dem Stapel stammen.
In einem Stapel wird das zuletzt nacheinander eingefügte Element zuerst ausgegeben, da wir es nur von der Oberseite des Stapels entfernen können. Diese Funktion wird als LIFO-Funktion (Last in First Out) bezeichnet. Die Operationen zum Hinzufügen und Entfernen der Elemente sind bekannt alsPUSH und POP. Im folgenden Programm implementieren wir es als Funktionen zum Hinzufügen und Entfernen. Wir deklarieren eine leere Liste und verwenden die Methoden append () und pop (), um die Datenelemente hinzuzufügen und zu entfernen.
In einen Stapel schieben
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())
Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:
Tue
Thu
POP von einem Stapel
Da wir wissen, dass wir nur das oberste Datenelement aus dem Stapel entfernen können, implementieren wir ein Python-Programm, das dies tut. Die Entfernungsfunktion im folgenden Programm gibt das oberste Element zurück. Wir überprüfen das oberste Element, indem wir zuerst die Größe des Stapels berechnen und dann die eingebaute pop () -Methode verwenden, um das oberste Element herauszufinden.
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())
Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:
Thu
Wed