栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

栈.png栈结构实现栈可以用顺序表实现,也可以用链表实现。栈的操作Stack() 创建一个新的空栈push(item) 添加一个新的元素item到栈顶pop() 弹出栈顶元素peek() 返回栈顶元素is_empty() 判断栈是否为空size() 返回栈的元素个数class Stack(object): """栈""" def __init__(self): self.__items = [] def is_empty(self): """判断是否为空""" return self.__items == [] def push(self,item): """加入元素""" self.__items.append(item) def pop(self): """弹出元素"""" return self.items.pop() def peek(self): """返回栈顶元素""" return self.__items[len(self.__items)-1] def size(self): """返回栈的大小""" return len(self.__items) if __name__ == "__main__": stack = Stack() stack.push("hello") stack.push("world") stack.push("xxx") print stack.size() print stack.peek() print stack.pop() print stack.pop() print stack.pop()

stack演示.gif

(0)

相关推荐

  • 数据结构:队列与堆栈

    队列与堆栈都是一种数据的存储方式. 队列可以提供先进先出的顺序(FIFO).它每一次移除的元素,都是你最先放进去的元素.这里有一个非常类似的数据结构,堆栈Stack,属于后进先出的顺序(LIFO,La ...

  • 每日一题 剑指offer(用两个栈实现队列)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • STL_stack容器

    一.stack简介 stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口.stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其 ...

  • 全栈认知:应用框架

    [引子] "探索嵌入式应用框架(EAF)" 的那篇文字是应用框架在嵌入式领域的具体示例,实际上,在服务器领域,应用框架更是俯拾皆是.五一假期的时候, 开始为全栈系列填坑,弥补空间维 ...

  • 天医小栈 | 我们大多数人都还没有成为可以成为的人

    天医小栈 | 我们大多数人都还没有成为可以成为的人 天医堂 昨天 - THE END - ▶ 版权声明: 1.文源:青医说, 编校/常通达. 2.欢迎大家投稿,投稿邮箱2441520872@qq.co ...

  • 从零开始搭建创业公司后台技术栈!

    架构师社区 原文 : http://ju.outofmemory.cn/entry/351897 前言 说到后台技术栈,脑海中是不是浮现的是这样一幅图? 图 1 有点眼晕,以下只是我们会用到的一些语言 ...

  • Web 全栈大会:万维网之父的数据主权革命

    本文整理自蒸汽记忆创始人谢扬在 2019 年 11 月 16 日在成都 Web 全栈大会上的演讲,内容有删改. 完整PPT 可从 Github 上查看:https://leinue.github.io ...

  • 彻底搞懂CPU特权级上篇(内存特权级)计算机资源包括内存段代码段数据段栈段IO设备核心数据结构

    计算机资源包括内存段代码段数据段栈段IO设备核心数据结构 程序员在用户程序开发过程中,会遇到两个基本概念即用户态和内核态,我们所说的模式切换,就是用户态和内核态之间的切换. 用户态和内核态其实是CPU ...

  • 【黄包车•70年】新泰茶栈洋人引进汉口第一辆人力车

    清末民初第一代人力车,1913年美国人克拉普雇人力车游武昌. 19世纪中后叶,中国的城市发展进入工业化和现代化的重要历史时期.长江.汉水交汇之地的华中重镇武汉,作为最早对外开放的商埠之一,城市公共交通 ...

  • 首个卡车全栈自动驾驶系统发布:嬴彻轩辕!年内量产上路

    全栈自研,包含算法.软件系统.计算平台和线控底盘集成,面向量产,年内交付,将以车队形式上路. 这就是卡车自动驾驶系统"轩辕",及其打造者嬴彻科技带来的最新进展. 值得注意的是,这也 ...

  • 虚拟机字节码执行引擎 —— 运行时栈帧

    本文部分摘自<深入理解 Java 虚拟机> 执行引擎 执行引擎是 Java 虚拟机核心的组成部分之一,作用就是用来执行字节码.在 Java 虚拟机规范中执行引擎只是一个概念模型,不同的虚拟 ...

  • 堆、栈和堆栈的区别

    堆(heap):堆是一种经过排序的树形数据结构,每个结点都有一个值. 栈(stack):它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取.(PS:颇有砌墙的砖--后来者居上的赶脚 ...

  • Python|栈是如何进栈和出栈的问题解决方法

    问题描述示例:例如一个栈输入序列为123456,能否得到436512和135462的出栈序列.解决方案本题讲述的是关于栈的进栈和出栈的问题,那么首先需要知道栈的概念是什么,到底什么是栈.[栈定义是只能 ...