Umkehren von Stack mit Python

Stornieren stack:

  1. Machte ich einen leeren temporären stack
  2. Ich verwendet tempstack.push(stack.pop())
  3. und dann umbenannt zu stack = tempstack

aber es scheint nicht zu funktionieren. Irgendeine Idee warum?

Diesen Aufruf, den ich gerade nutzen will reverse(stack), nicht stack = reverse(stack).

def reverse(stack):
    new_stack = Stack()
    while not stack.is_empty():
        new_stack.push(stack.pop())
    stack = new_stack
  • stack = new_stack wird nur machen einen Unterschied in der Funktion, was auch immer Objekt, das Sie übergeben wird, bleibt davon unberührt. Betrachten return new_stack dann tun stack = reverse(stack) außerhalb.
  • gut, was andere Wege der Umbenennung oder mutierend new_stack in Stapel?
  • Haben Sie in Betracht gezogen, Lesen Sie in der Dokumentation für die Daten-Struktur, die Sie verwenden?
  • was ich sagen kann, Ihr eine Liste mit FIFO. Alles, was im fehlt? Ich möchte wirklich nicht, etwas zurückzugeben. Ich möchte nur die Reihenfolge der Werte in den stack. Aber es gibt keine Möglichkeit, dies zu tun, als zu speichern, die pop-Werte in eine temp-Daten-Struktur, die dann das umbenennen der temp-Daten-Struktur in das original meiner Meinung nach.
  • Ich denke, Sie sind fehlt @jonrsharpe Punkt. Sie sind nicht die Rückgabe der rückgängig-Stapel. Beim Aufruf von reverse (), die Sie einstellen sollte, gleich zu stapeln und im inneren reverse() liefert den modifizierten stack
  • Wenn Sie absolut nicht wollen, um einen Wert zurückzugeben, sollten Sie einen Blick auf dieser Frage.

InformationsquelleAutor | 2015-10-06
Schreibe einen Kommentar