数据结构-栈

女生的网名这么多〃 提交于 2020-02-10 09:21:42

栈的抽象数据类型:
栈是一种用于存储数据的简单数据结构,有点类似链表或者顺序表(统称线性表),栈与线性表的最大区别是数据的存取的操作,我们可以这样认为栈(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 Nonestack = 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这种类似的检测

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!