python中栈的原理及实现方法示例

yipeiwu_com6年前Python基础

本文实例讲述了python中栈的原理及实现方法。分享给大家供大家参考,具体如下:

栈(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相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python hashlib模块实例使用详解

这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的...

Python单元测试与测试用例简析

本文实例讲述了Python单元测试与测试用例。分享给大家供大家参考,具体如下: 单元测试与测试用例 简介 测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求 要...

使用python根据端口号关闭进程的方法

我们知道,做web开发,在调试时需要反复启动整个工程,那么上一个工程占用的端口,在下一次工程启动时就不能用了,因为占用的端口没有释放,但是手动关闭方法是: lsof -i:12345 得...

Python 过滤字符串的技巧,map与itertools.imap

具体的实例 我们需要在目录中遍历,包括子目录(哈哈),找出所有后缀为:rmvb ,avi ,pmp 的文件。(天哪?!你要干什么?这可是我的隐私啊~~) 复制代码 代码如下:import...

python无序链表删除重复项的方法

python无序链表删除重复项的方法

题目描述: 给定一个没有排序的链表,去掉重复项,并保留原顺序 如: 1->3->1->5->5->7,去掉重复项后变为:1->3->5->...