Как я могу запрограммировать мой код, чтобы он отображал порядок стека сверху вниз в Python для структуры LIFO

У меня есть работающий код, но я написал свой код на python, реализующий стек, он выдвигает и выталкивает после LIFO, но когда вы просматриваете список, он печатает его так:

1 
2 
3 

показывая последний элемент, который равен 3 внизу, как я могу сделать так, чтобы последний элемент отображался сверху как правильный стек?

мой код выглядит следующим образом:

stack_pointer = 0
stack =[]
max_length = 2


def view():
        for x in range (len(stack)):
            print(stack[x])
def push():
    global stack_pointer
    if len (stack)> max_length:
        print("Maximum stack length reached!") 
    else:
        stack_pointer = stack_pointer + 1
        item = input("Please enter the  item you wishto add to the stack: ")
        stack.append(item)

def pop():
    global stack_pointer
    if len (stack)<= 0:
        print ("stack is empty!")
    else:
        item = stack.pop
        stack_pointer = stack_pointer - 1
        print ("you just popped out: ", item)

while True:
    print ("")
    print("Python implementation of a stack")
    print("********************************")
    print("1. view Stack")
    print("2. Push onto Stack")
    print("3. Pop out of Stack")
    print("********************************")
    print("")
    menu_choice = int (input("Please enter your menu choice: "))
    print ("")
    print ("")

    if menu_choice == 1:
        view()
    elif menu_choice == 2:
        push()
    elif menu_choice == 3:
        pop()

2 ответа

Попробуйте что-то вроде этого:

def view():
    print(list(reversed(stack)))

создать обратную копию вашего списка и распечатать его.

Это должно работать: start длины стека - 1, а stop из -1, и step -1; новые списки не создаются или дополнительные операции, только модификация range параметры объекта, при этом он эффективен:

def view():
    for x in range (len(stack) - 1, -1, -1):
        print(stack[x])  # or print(stack[x], end=' ')
Другие вопросы по тегам