zoukankan      html  css  js  c++  java
  • 数据结构-栈

    栈的抽象数据类型:
    栈是一种用于存储数据的简单数据结构,有点类似链表或者顺序表(统称线性表),栈与线性表的最大区别是数据的存取的操作,我们可以这样认为栈(Stack)是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop)。若栈中没有任何元素,则称为空栈,栈的结构如下图:

    列表实现栈:

      

    class Stack:
    def __init__(self):
    self.stack=[]
    def push(self,element):
    self.stack.append(element)

    def pop(self):
    return self.stack.pop()

    def get_top(self):
    if len(self.stack)>0:
    return self.stack[-1]
    else:
    return None

    stack = Stack()
    stack.push(1)
    stack.push(2)
    stack.push(3)
    stack.pop()
    print(stack.stack)


    栈的应用:

    def brace_match(s):
    match = {'}':'{',']':'[',')':'('}
    stack = Stack()
    for ch in s :
    if ch in {'(','{',"["}:
    stack.push(ch)
    else:
    if stack.is_empty():
    return False
    elif stack.get_top() == match[ch]: #栈顶元素
    stack.pop()
    else:
    return False

    if stack.is_empty():
    return True
    else:
    return False
      栈的经典应用就是在符号输入检测和HIML这种类似的检测






  • 相关阅读:
    Leetcode-2 两数相加
    离散数学-基本割集的找法
    Linux操作系统分析课程学习总结报告
    Linux实验三 结合中断上下文切换和进程上下文切换分析Linux内核一般执行过程
    Linux实验二:深入理解系统调用
    初始python
    水仙花数讲解
    Python-运算
    Python-列表
    Python-字符串
  • 原文地址:https://www.cnblogs.com/sunny666/p/10734279.html
Copyright © 2011-2022 走看看