如何对代码进行编程,使其在 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()

尝试这样的事情:

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=' ')

相关内容

  • 没有找到相关文章

最新更新