zoukankan      html  css  js  c++  java
  • python中的栈

    
    # @File: stack
    
    
    # 列表实现栈
    class MyStack(object):
    
        def __init__(self):
            self.data = []
    
        def push(self, item):
            self.data.append(item)
    
        def pop(self):
            return self.data.pop()
    
        def top(self):
            return self.data[-1]
    
        def is_empty(self):
            return self.data == []
    
        def size(self):
            return len(self.data)
    
    
    stack = MyStack()
    stack.push(9)
    stack.push(9)
    print(stack)
    print(stack.top())
    print(stack.pop())
    print(stack)
    
    ---------------------------------------------------------------------------------
    
    import queue
    
    stack = queue.LifoQueue()  # 可看LifoQueue的源码,就是以上原理
    stack.put(1)
    stack.put(2)
    print(stack.get())
    print(stack.queue)
    print(stack.qsize())
    # stack.empty()  # 栈空
    # stack.full()  # 栈满
    
    
    
    ---------------------------------------------------------------------------------
    # 例子(括号匹配)
    def bracket_match(s):
        stack = []
        d = {"}": "{", ']': '[', ')': ')'}
        for ch in s:
            if ch in {'{', '[', '('}:
                stack.append(ch)
            elif len(stack) == 0:
                print('缺少左括号')
            elif d[ch] == stack[-1]:
                stack.pop()
            else:
                print('左右括号不匹配')
                return False
        if len(stack) > 0:
            print('缺少右括号')
            return False
        else:
            return True
    
    
    # print(bracket_match("[(])"))
  • 相关阅读:
    团队作业第五次——冲刺任务与计划
    2020-04-29 冲刺第一天
    OO Unit 2 Summary
    OO Unit 1 Summary
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    软件工程第一次作业
    软件工程2019第一次作业
    α阶段第九次会议
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/10168570.html
Copyright © 2011-2022 走看看