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实现分析apache和nginx日志文件并输出访客ip列表的方法

    python实现分析apache和nginx日志文件并输出访客ip列表的方法

    这篇文章主要介绍了python实现分析apache和nginx日志文件并输出访客ip列表的方法,涉及Python操作日志文件的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • pandas 读取excel文件的操作代码

    pandas 读取excel文件的操作代码

    pandas 读取excel文件使用的是 read_excel方法。本文将详细解析read_excel方法的常用参数,以及实际的使用示例,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • Python人工智能实战之对话机器人的实现

    Python人工智能实战之对话机器人的实现

    本文将通过Python开发一个可以讲笑话的机器人,可以自由定制功能,想讲几个笑话就讲几个笑话。文中的示例代码讲解详细,感兴趣的可以动手试一试
    2022-02-02
  • Python用类实现扑克牌发牌的示例代码

    Python用类实现扑克牌发牌的示例代码

    这篇文章主要介绍了Python用类实现扑克牌发牌的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 在Python程序员面试中被问的最多的10道题

    在Python程序员面试中被问的最多的10道题

    本篇文章我们为大家整理了在Python程序员面试中被问的最多的10道题,我们还给出了最简便的解决办法,一起学习下。
    2017-12-12
  • Python实现图形用户界面和游戏开发的方法和技巧

    Python实现图形用户界面和游戏开发的方法和技巧

    GUI图形用户界面编程,我们可以通过python提供的丰富的组件,快速的实现使用图形的界面和用户交互, GUI编程类似于“搭积⽊”,将⼀个个组件(Widget)放到窗⼝中,这篇文章主要给大家介绍了基于Python的GUI图形用户界面编程的相关资料,需要的朋友可以参考下
    2023-05-05
  • Jacobi迭代算法的Python实现详解

    Jacobi迭代算法的Python实现详解

    这篇文章主要介绍了Jacobi迭代算法的Python实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • 初学者快看,Python下划线的五个作用介绍

    初学者快看,Python下划线的五个作用介绍

    大家好,本篇文章主要讲的是初学者快看,Python下划线的五个作用介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Qt通过QGraphicsview实现简单缩放及还原效果

    Qt通过QGraphicsview实现简单缩放及还原效果

    本文主要介绍通过QGraphicsview实现简单的缩放以及缩放后还原原始大小,通过scale可以对view进行放大或缩小,具体内容详情跟随小编一起看看吧
    2021-09-09
  • python爬虫获取京东手机图片的图文教程

    python爬虫获取京东手机图片的图文教程

    下面小编就为大家分享一篇python爬虫获取京东手机图片的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12

最新评论