zoukankan      html  css  js  c++  java
  • python实现栈和队列

    python实现栈

    符合先进后出的规则

    代码实现

    #定义一个空 list 当做栈
    stack = []
    stack.append(1)
    stack.append(2)
    stack.append("hello")
    print(stack)
    print("取一个元素:",stack.pop())
    print("取一个元素:",stack.pop())
    print("取一个元素:",stack.pop())
    

    运行结果

    [1, 2, 'hello']
    取一个元素: hello
    取一个元素: 2
    取一个元素: 1
    

    python实现队列

    符合先进先出的原则

    代码实现

    #定义一个空列表,当做队列
    queue = []
    #向列表中插入元素
    queue.insert(0,1)
    queue.insert(0,2)
    queue.insert(0,"hello")
    print(queue)   #直接输出全部元素
    print("取一个元素:",queue.pop())
    print("取一个元素:",queue.pop())
    print("取一个元素:",queue.pop())
    

    运行结果

    ['hello', 2, 1]
    取一个元素: 1
    取一个元素: 2
    取一个元素: hello
    

    实际解题

    后缀表达式(栈的应用):

    题目链接:

    https://www.luogu.com.cn/problem/P1449

    ac代码:

    '''
    后缀表达式,使用栈
     3.5.2.-*7.+@
    '''
    st=input()
    stack = []
    now=0
    for x in range(0,len(st)):
        if(st[x]>='0' and st[x]<='9') :
             now=now*10+int(st[x])
        else:
            if(st[x]=='@'):
                print(stack.pop())
            elif(st[x]=='*' or st[x]=='/' or st[x]=='+' or st[x]=='-'):
                a=stack.pop()
                b=stack.pop()
                if st[x]=='*' :
                    stack.append(a*b)
                elif st[x]=='/' :
                    stack.append(b//a)
                elif st[x] == '+':
                    stack.append(a + b)
                else:
                    stack.append(b-a)
            else :
                stack.append(now)
                now=0
    
  • 相关阅读:
    11.json
    10.正则表达式
    9.面向对象、类
    bzoj 2878: [Noi2012]迷失游乐园
    bzoj 2727: [HNOI2012]双十字
    bzoj 3224: Tyvj 1728 普通平衡树
    bzoj 3932: [CQOI2015]任务查询系统
    bzoj 1997: [Hnoi2010]Planar
    4 Django简介
    3 web框架
  • 原文地址:https://www.cnblogs.com/AC673523745/p/14417015.html
Copyright © 2011-2022 走看看