сортировка стека с помощью временного стека python

#python #stack

Вопрос:

На самом деле я не могу понять этот код. Мы создаем стек и добавляем в него значения и открываем первый элемент. Тогда это условие 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)
 

Комментарии:

1. Посмотрите, что происходит после внутреннего цикла, все еще находясь во внешнем цикле.

2. можете ли вы уточнить, пожалуйста

3. В первом запуске вы 1) входите во внешний while цикл, 2) не входите во внутренний while цикл, 3) добавляете temp ts .

Ответ №1:

Он пропускает первый запуск цикла (потому что изначально мы не добавляли никаких значений в «ts») и добавляем первый элемент в «ts» в «ts.append(temp)». После этого при втором запуске цикла он входит во второй цикл while

Комментарии:

1. если верхний элемент в ts является Но здесь условие обратное?