使用临时堆栈python对堆栈进行排序



实际上我无法理解这段代码。我们创建一个堆栈并在其中附加值,然后弹出第一个元素。那么这个条件len(ts(=0令人困惑。最初我们没有给ts附加任何值,然后如何满足这个条件。

def sortstack(stack):
ts = createStack()
while len(stack) != 0:
temp = stack.pop()
while len(ts) != 0 and int(top(ts))>int(temp):
stack.append(ts.pop())
ts.append(temp)
return ts
def createStack():
stack=[]
return stack
def top(stack):
return stack[len(stack)-1]
stack=createStack()
stack.append(10)
stack.append(23)
stack.append(5)
stack.append(80)
stack.append(6)

它跳过循环的第一次运行(因为最初我们没有向"ts"追加任何值(,并将第一个元素追加到"ts";ts";在";ts.append(temp(";。之后,在循环的第二次运行中,它进入第二次,同时循环

最新更新