class Node:
def __init__(self,data):
self.data=data
self.prev=None
self.next=None
class Stack:
def __init__(self):
self.top=None
def enqueue(self,x):
n=Node(x)
if(self.top==None):
self.top=n
temp=self.top
temp.next=n
n.prev=temp
self.top=n
def dequeue(self):
if(self.top==None):
print("Stack Underflow!")
return
k=self.top
# self.top=None
self.top=k.prev
print(k.data)
del k
s=Stack()
s.enqueue(10)
s.enqueue(20)
s.enqueue(30)
s.dequeue()
s.dequeue()
s.dequeue()
s.dequeue()
Я получаю 10, когда удаление из очереди выполняется в четвертый раз, но, согласно моему логу c, я должен получить сообщение «stack underflow!» потому что я уже установил значение self.top в третьей очереди на предыдущее из 10, что равно None. и каждый раз после третьего удаления из очереди я получаю значение 10.