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

由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

栈结构实现

栈可以用顺序表实现,也可以用链表实现。

栈的操作

  • 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("itcast")print stack.size()print stack.peek()print stack.pop()print stack.pop()print stack.pop()

python中的栈及其实现相关推荐

  1. python中的栈结构_Python可以实现栈的结构吗

    栈(stack)又名堆栈,它是一种运算受限的线性表.在Python中可使用列表进行实现. 什么是栈? 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这 ...

  2. python中出栈的方法,python中栈的原理及实现方法示例

    python中栈的原理及实现方法示例 本文实例讲述了python中栈的原理及实现方法.分享给大家供大家参考,具体如下: 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素.访问元素.删除元 ...

  3. python中的栈结构_python中有栈吗

    在英语词典中,堆(Stack)表示将对象放在另一个对象上. 在这个数据结构中分配内存的方式是一样的. 它以类似的方式存储数据元素,类似在厨房中一堆盘子:一个在另一个之上存放. 所以堆栈数据数据允许操作 ...

  4. python中的栈结构_对Python列表进行封装和二次开发实现自定义栈结构

    设计自定义栈类,模拟入栈.出栈.判断栈是否为空.是否已满以及改变栈大小等操作. class Stack: #构造方法 def __init__(self, maxlen = 10): self._co ...

  5. python中栈_Python中的栈

    Python中的栈 什么是栈 在数据结构中栈和队列可以理解为一种容器.它门也是一种简单的缓存结构,只支持数据的存储和访问.栈中的元素之间相互没有任何和的具体关系,只有时间的相互顺序.栈的相关操作包括数 ...

  6. python 判断括号是否匹配_使用Python实现一个栈判断括号是否平衡

    栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top). 举个例子,栈就想一摞洗干净的盘子,你每次取一个新盘子,都是放在这一摞盘子的最上头,当你往里 ...

  7. python中的线性数据结构

    ''' https://www.bilibili.com/video/av19992545/?p=1python中的线性数据结构线性数据结构是计算机组织数据的一种方式必须满足以下四个要求才是线性数据结 ...

  8. python中的队列和栈_python的队列和栈

    (一)队列和栈的区别 1.队列: 队列是一种特殊的线性表.其两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端 ...

  9. python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt

    数据结构与算法:Python语言描述 栈和队列 迷宫问题 迷宫问题的特点: 存在一集可能位置,一些位置相互连通,一步可达 一个位置可能连通若干位置,出现向前探查的多种可能(有分支) 目标是找到一条路径 ...

最新文章

  1. hdu1978(递推dp)
  2. mysql将权限分为几个层级_MySQL多层级结构-区域表使用树详解
  3. error:cannot load driver JL2CM3.dll
  4. 在程序员的道路上,义无反顾的努力,有思想的人,很多,好的想法,需要学习。(以此共勉)...
  5. ubuntu安装python3.6_Ubuntu16.04安装python3.6.5步骤详解
  6. Hibernate中的fetch
  7. C++STL算法速查
  8. 软件测试——文档测试
  9. Cursor的关闭问题
  10. java 自动登录_java代码实现自动登录功能
  11. 手机可用熵_思想丨在商言“熵”
  12. Linux中 [Error 28] 设备上没有空间
  13. 弹性小球flash导航菜单源码
  14. XMUTOJ-默罕默德的炸弹
  15. bat 2018自然语言处理校园招聘的要求
  16. 支付宝面对面支付(境外)
  17. BIOS模式怎么退出
  18. mysql57是什么_关于mysql57的详细介绍
  19. 撑持4G LTE网络 OPPO R1S或在美出售
  20. 定义一个Triangle类表示三角形,测试这个三角形类的所有方法

热门文章

  1. mongodb副本集搭建
  2. 在Windows和Azure中使用加密证书提高web.config的安全性
  3. ios7自定义返回按钮后,右滑返回功能失效解决方法
  4. flex中DataGrid里使用itemRenderer后数据无法绑定到数据源的问题
  5. [转]异步性能:了解 Async 和 Await 的成本
  6. Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
  7. Nginx的UDP健康检查
  8. DreamFactory - 第3章生成数据库支持的API
  9. 快速安装Docker图形化管理平台ShipYard
  10. Mac上使用homebrew安装PostgreSql