• 数据结构 之 '栈'


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

    一、概念

    栈(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
    
    # 栈这种数据结构的特点即:后进先出
    
  • 相关阅读:
    jmeter之Dummy Sampler
    【转载】Jmeter之Bean shell使用(二)
    jmeter的关联-正则表达式的应用
    启动Jmeter录制代理进行录制,报 jmeter.protocol.http.proxy.ProxyControl
    Jmeter的三个线程组
    python3进行3des的加密解密
    python连接kafka-2.0
    python读取kafka,输出到Vertica数据库
    pip下载保存Python包,pip离线安装
    阿里云kafka使用记录(python版本)
  • 原文地址:https://www.cnblogs.com/fengting0913/p/13303986.html
Copyright © 2020-2023  润新知