Python算法之栈(stack)的实现

 更新时间:2014年08月18日 11:17:40   投稿:shichen2014  
这篇文章主要介绍了Python算法之栈(stack)的实现,非常实用,需要的朋友可以参考下

本文以实例形式展示了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 数据类型中的字符串和数字

    这篇文章主要介绍了Python 数据类型中的字符串和数字,Python3中有六个标准的数据类型,Number、String、List、Tuple、Set、Dictionary,加先来我们就来看看这几种数据类型的具体相关介绍,需要的小伙伴可以参考一下
    2022-02-02
  • python3如何清除过滤emoji表情

    python3如何清除过滤emoji表情

    这篇文章主要介绍了python3如何清除过滤emoji表情问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 在Python程序中进行文件读取和写入操作的教程

    在Python程序中进行文件读取和写入操作的教程

    这篇文章主要介绍了在Python程序中进行文件读取和写入操作的教程,是Python学习当中的基础知识,需要的朋友可以参考下
    2015-04-04
  • Python判断字符串是否xx开始或结尾的示例

    Python判断字符串是否xx开始或结尾的示例

    今天小编就为大家分享一篇Python判断字符串是否xx开始或结尾的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 给Python中的MySQLdb模块添加超时功能的教程

    给Python中的MySQLdb模块添加超时功能的教程

    这篇文章主要介绍了给Python中的MySQLdb模块添加超时功能的教程,timeout功能在服务器的运维当中非常有用,需要的朋友可以参考下
    2015-05-05
  • 使用python实现自动化控制电脑版微信

    使用python实现自动化控制电脑版微信

    这篇文章主要为大家详细介绍了如何通过Python去调用Windows API实现模拟人工操作的方式去实现控制微信电脑版,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • 使用python绘制随机地形地图

    使用python绘制随机地形地图

    Python 作为一门功能强大的编程语言,在地图生成方面有着丰富的资源和库,本文将介绍如何使用 Python 中的一些工具和库来绘制随机地形地图,感兴趣的小伙伴可以跟着小编一起来看看
    2024-04-04
  • python3 QT5 端口转发工具两种场景分析

    python3 QT5 端口转发工具两种场景分析

    这篇文章主要介绍了python3 QT5 端口转发工具,功能是打开本机端口,映射到指定IP的端口,接下来通过两种场景给大家详细介绍,感兴趣的朋友一起看看吧
    2022-01-01
  • Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)

    Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)

    这篇文章主要介绍了Python在centos7.6上安装python3.9(默认python版本为2.7.5)的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-10-10
  • Python实现微信好友数据爬取及分析

    Python实现微信好友数据爬取及分析

    这篇文章会基于Python对微信好友进行数据分析,这里选择的维度主要有:性别、头像、签名、位置,主要采用图表和词云两种形式来呈现结果,其中,对文本类信息会采用词频分析和情感分析两种方法,感兴趣的小伙伴可以了解一下
    2021-12-12

最新评论