Я пытаюсь реализовать стек, используя связанный список, основанный только на классе узлов. У меня возникают некоторые проблемы с методом pop моего класса, который, похоже, не демонстрирует изменчивости. Когда я использую метод pop-класса, он возвращает вершину стека правильно, но не обновляет стек.Реализация стека с использованием связанного списка в python. Проблемы с методом pop и вопросы о изменчивости
x=stack_linked(1)
x=x.insert(2)
x=x.insert(3)
x.print() # This is correct and prints 3,2,1
print(x.pop()) # This is correct and prints 3, but doesn't actually modify my list
x.print() # This prints 3,2,1
Почему я не изменяю? Также как я могу изменить свой класс, не полностью взорвав его или создав для этого оболочку? Вот мой класс.
class stack_linked(object):
def __init__(self,data):
self.data=data
self.next=None
def insert(self,front):
front=stack_linked(front)
front.next=self
return front
def peek(self):
if self==None:
return None
else
return self.data
def pop(self):
front=self
self=self.next # some sort of issue here
return front
def print(self):
x=self
if x==None:
print("Empty")
else:
print(x.data)
while x.next !=None:
x=x.next
print(x.data)
Assigning to 'self' в методе экземпляра не приводит к замене всего экземпляра. – jonrsharpe
Итак, как бы я переделал метод pop? – user3776598
Также это проблема изменчивости? Или это не связано? – user3776598