Как я могу запрограммировать мой код, чтобы он отображал порядок стека сверху вниз в 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=' ')