本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:

1.栈stack通常的操作:

Stack() 建立一个空的栈对象

push() 把一个元素添加到栈的最顶层

pop() 删除栈最顶层的元素,并返回这个元素

peek() 返回最顶层的元素,并不删除它

isEmpty() 判断栈是否为空

size() 返回栈中元素的个数

2.简单案例以及操作结果:

Stack Operation Stack Contents Return Value

s.isEmpty() [] True

s.push(4) [4]

s.push('dog') [4,'dog']

s.peek() [4,'dog'] 'dog'

s.push(True) [4,'dog',True]

s.size() [4,'dog',True] 3

s.isEmpty() [4,'dog',True] False

s.push(8.4) [4,'dog',True,8.4]

s.pop() [4,'dog',True] 8.4

s.pop() [4,'dog'] True

s.size() [4,'dog'] 2

这里使用python的list对象模拟栈的实现,具体代码如下:

#coding:utf8

class Stack:

"""模拟栈"""

def __init__(self):

self.items = []

def isEmpty(self):

return len(self.items)==0

def push(self, item):

self.items.append(item)

def pop(self):

return self.items.pop()

def peek(self):

if not self.isEmpty():

return self.items[len(self.items)-1]

def size(self):

return len(self.items)

s=Stack()

print(s.isEmpty())

s.push(4)

s.push('dog')

print(s.peek())

s.push(True)

print(s.size())

print(s.isEmpty())

s.push(8.4)

print(s.pop())

print(s.pop())

print(s.size())

感兴趣的读者可以动手测试一下本文所述实例代码,相信会对大家学习Python能有一定的收获。

python栈是什么意思_Python算法之栈(stack)的实现相关推荐

  1. python的栈在哪个库_Python算法实战系列之栈

    栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一 ...

  2. stack在python中是什么意思_python中的栈指的是什么

    栈(stack)是一个项的有序集合,其中添加移除新项总发生在同一端.这一端通常称为"顶部".与顶部对应的端称为"底部". 就像图片所描述的,栈s=(a1,a2, ...

  3. python栈是什么意思_Python实现的栈(Stack)

    前言 Python本身已有顺序表(List.Tupple)的实现,所以这里从栈开始. 什么是栈 想象一摞被堆起来的书,这就是栈.这堆书的特点是,最后被堆进去的书,永远在最上面.从这堆书里面取一本书出来 ...

  4. python的数据结构包括那些_python算法与数据结构-什么是数据结构

    一.什么是数据结构 数据结构,直白地理解,就是研究数据的存储方式. 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的值 ...

  5. c语言怎样计算栈的长度,数据结构与算法:栈 C语言实现

    栈是仅在表尾进行插入.删除操作的线性表.即栈 S= (a1, a2, a3, ---,an-1, an),其中表尾称为栈顶 /top,表头称为栈底/base. 由于只能在表尾进行操作,因此栈的运算规则 ...

  6. python 从大到小循环_python算法(3) 插入排序

    python算法(3) 插入排序 算法分析 给出一个乱序的数列,将这个数列按从小大到(从大到小)重新排列 插入排序的的逻辑是从选这个数列,一个一个的插入一到一个新的数列中 如下: 初始数列: 5 1 ...

  7. python中if的效率_Python算法效率和增长量级,经典题目回顾

    小tips 做这样的分析可以把代码拷贝到记事本,然后在后面写步数,比手写快得多 image.png 第一题 def program1(L): multiples = [] for x in L: fo ...

  8. python实现杨辉三角_Python算法之六:杨辉三角

    关注微信公众号"酸痛鱼",获得更多最新最全的文章. 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的. 建议您在PC浏览器中阅读本文,以获得更好的 ...

  9. python算法详解脚本之家_Python算法应用实战之栈详解

    栈(stack) 栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最 ...

最新文章

  1. NCBI中SRA数据库简介
  2. 在Flash中利用PCRE正则式漏洞CVE-2015-0318的方法
  3. Linux开发中 MD5值的计算
  4. Spring Boot——[Disconnected from the target VM, address: IP:端口, transport: #39socket#39]解决方案
  5. Cisco packet tracer6.0下的网络工程实训
  6. python测试udp端口_怎样测试UDP端口
  7. TestNg的IReporter接口的使用
  8. 红旗系统 oracle,红旗linux的Asianux 3.0安装oracle10.2
  9. 校园二手交易系统设计与实现
  10. 阿里云分布式架构云平台解决方案
  11. 浅析VO、DTO、DO、BO的概念、区别和用处
  12. iview可编辑表格组件封装
  13. 校验两个时间段是否重合
  14. nginx反向代理,隐藏服务IP
  15. 华硕主板电脑开机后一直反复进入BIOS界面解决办法(其中之一)
  16. MySql中增加注释、追加注释、修改注释、查看注释
  17. 基于PHP的篮球宝篮球娱乐网站
  18. mysql eof_EOF随记
  19. java利用循环打印AVA_ava.util.ArrayList在foreach循环遍历时可以删除元素
  20. Matlab安装bav-io插件时报错:Either you are offline, a firewall is blocking EEGLAB from accessing itsplugin s

热门文章

  1. 易买网更多新闻代码_《女神异闻录5》新网站源代码内藏玄机 4月25日有更多情报...
  2. Mac 重置 idea
  3. 华为路由交换学习篇-路由
  4. Android 微软雅黑、仿宋、黑体的使用
  5. STM32-USB学习系列(一) :USB与USB库的介绍
  6. KPI关键绩效指标(Key Performance Indicator)
  7. https利用360cdn实现网站加速
  8. VMWARE虚拟机网络环境配置
  9. YY创始人携手极客公园调坎QQ企鹅
  10. 实验室服务器机器学习环境搭建(远程连接服务器 anaconda和tensor flow)