Stack
- это объект, который функционирует как куча пластин.Когда вы push
, вы добавляете пластину в верхнюю часть стопки, а когда вы pop
, вы убираете одну из верхних.Вам не захочется извлекать тарелку снизу, это и дорого, и не нужно.
В этом случае stack.push(stack.pop())
ничего не делает.Он pop
уберет предмет с вершины стека и push
снова на вершину.В вашем цикле while
вы извлекаете pop
элементов из стека, пока в нем не останется больше элементов.pop
возвращает элемент, который вы удалили, вот как он печатается
Примеры:
# declare empty stack
stack = Stack()
# Now the stack has one item in it, a string called "hello"
stack.push("hello")
# x is now a string "hello", and we have removed it from
# the stack. stack is now empty
x = stack.pop()
# stack now has x in it
stack.push(x)
# we add a string "world" to the top of the stack
stack.push("world")
# x is now the value of the top of the stack, "world"
# The stack also only has "hello" in it, since "world" was
# removed
x = stack.pop()