Мне нужно перевернуть стек в python, моя идея состоит в том, чтобы создать пустой стек в начале. Затем мы проверяем, пуст ли исходный стек, если это так, тогда нам нечего менять; если нет, каждый раз, когда мы вытаскиваем элемент из исходного стека, мы возвращаем его обратно в пустой стек. Это продолжается до тех пор, пока исходный стек не сможет выскочить. И, наконец, мы переименуем стек хранилища в качестве исходного стека и вернем его. Теперь он должен иметь обратный порядок.Как правильно отформатировать стек?
Но проблема в том, что для единичного теста ниже он никогда не работает, оказывается, что стек temp, который я получаю, не имеет обратного порядка.
Защиту test_reverse (Я):
stack = Stack() stack.push(1) stack.push(2) reverse(stack) self.assertEqual(stack.pop(), 1) self.assertEqual(stack.pop(), 2) self.assertTrue(stack.is_empty())
Мне очень интересно, почему это не работает, спасибо!
Вы видели функцию reverse()? –
@MattBall, да, я понимаю, верхние элементы в исходном стеке уходят в нижнюю часть временного стека, а затем, когда мы выходим из элементов из временного стека, мы должны получить обратный порядок. :( – rexarski
Вам не нужно делать 'stack = reverse (stack)' вместо просто 'reverse (stack)'? –