• 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
    
  • 相关阅读:
    以太网的寻址
    IP地址简介
    服务器控件与Html控件属性值的解释差异
    The Live Hacking CD
    德国SNS交友/视频网站Poppen.de的技术架构分享
    Forensic Log Parsing with Microsoft's LogParser
    The Flame: Questions and Answers
    hping
    WIN7与XP网络共享与访问
    Win7无法访问NAS或Samba解决之道
  • 原文地址:https://www.cnblogs.com/AC673523745/p/14417015.html
Copyright © 2020-2023  润新知