Стеки Python!В частности, stack.push (stack.pop)) - PullRequest
0 голосов
/ 10 октября 2018

У меня возникли проблемы с пониманием того, что в этом коде выполняет stack.push (stack.pop ())

stack = Stack()
stack.push('1')
stack.push('2')
stack.push('3')
x = stack.pop()
y = stack.pop()
z = stack.pop()
stack.push(y)
stack.push(y)
stack.push('2')
while not stack.is_empty():
    print(stack.pop(), end='')

Я понимаю, что в стеке должно быть 3 элемента, но я неНе знаю, что они и как они будут печатать в конце?И помощь в том, как я могу понять это, будет принята с благодарностью!Спасибо

1 Ответ

0 голосов
/ 10 октября 2018

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...