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

    "栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法

    一、概念

    栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其下方的元素成为新的栈顶元素

    二、栈的特点:后进先出

    栈的代码实现

    class Stack():
        def __init__(self):
            """
            初始化栈(以列表充当此数据结构的容器)
            """
            self.items = []
    
        def push(self, item):
            """
            进栈(由栈顶至栈底添加)
            :param item: 被添加元素
            :return:
            """
            self.items.append(item)
    
        def pop(self):
            """
            出栈(由栈顶向栈底取元素)
            :return: 取出的元素
            """
            return self.items.pop()
    
        def isEmpty(self):
            """
            空栈
            :return: 若为空栈,则返回空列表
            """
            return self.items == []
    
        def size(self):
            """
            栈中元素个数
            :return:
            """
            return len(self.items)
    
        def peek(self):
            """
            得到栈顶元素的下标
            :return:
            """
            return len(self.items) - 1
    
    
    if __name__ == '__main__':
        s = Stack()
        s.push(1)
        s.push(2)
        s.push(3)
    
        print(s.pop())
        print(s.pop())
        print(s.pop())
    
    
    # 3
    # 2
    # 1
    
    # 栈这种数据结构的特点即:后进先出
    
  • 相关阅读:
    properties,yml 文件读取 pom.xml 文件变量
    Docker实战编写Dockerfile
    在SpringBoot中实现异步事件驱动
    HttpClient封装工具类
    oracle临时表的两种方式
    关于cxGrid选中行操作关联数据集的一种方法
    安全释放 TreeView的DATA!
    行字段值拼接成字符串
    delphi中遍历枚举类型的方法
    C#将XML字符串转换成实体对象,并去除cdata
  • 原文地址:https://www.cnblogs.com/fengting0913/p/13303986.html
Copyright © 2011-2022 走看看