Python算法之栈(stack)的实现_python

本文以实例形式展示了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
, 算法
, 栈
stack
用类实现栈stack、tf idf算法python实现、em算法python实现、dbscan算法python实现、python实现遗传算法,以便于您获取更多的相关知识。

时间: 2025-01-24 08:39:20

Python算法之栈(stack)的实现_python的相关文章

python算法学习之计数排序实例_python

python算法学习之计数排序实例 复制代码 代码如下: # -*- coding: utf-8 -*- def _counting_sort(A, B, k):    """计数排序,伪码如下:    COUNTING-SORT(A, B, k)    1  for i ← 0 to k // 初始化存储区的值    2    do C[i] ← 0    3  for j ← 1 to length[A] // 为各值计数    4    do C[A[j]] ← C[A

Python算法实战系列:栈

栈(stack)又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作. 如下图所示 例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一个,而最后放入弹匣的一颗子弹在打出去的时候是第一颗发射出去的. 栈的接口 如果你创建了一个栈,那么那么应该具有以下接口来进行对栈的操作 知道栈需要上述的接口后,那么在Python中,列表就类似是一个栈,提供接口如下: Python中的栈接口使用实例: # 创建一个栈    In [1]: s = [

Python Base of Scientific Stack(Python基础之科学栈)

Python Base of Scientific Stack(Python基础之科学栈) 1. Python的科学栈(Scientific Stack) NumPy NumPy提供度多维数组对象,以存储同构或者异构数据:它还提供操作这一数组对象的优化函数/方法. SciPy SciPy是一组子库和函数,实现科学或者金融中常常需要的重要标准功能: Matplotlib Matplotlib这是最流行的Python绘图和可视化库,提供2D和3D可视化功能. PyTables PyTables是最流

python 排序算法总结及实例详解_python

总结了一下常见集中排序的算法 归并排序 归并排序也称合并排序,是分治法的典型应用.分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并. 具体的归并排序就是,将一组无序数按n/2递归分解成只有一个元素的子项,一个元素就是已经排好序的了.然后将这些有序的子元素进行合并. 合并的过程就是 对 两个已经排好序的子序列,先选取两个子序列中最小的元素进行比较,选取两个元素中最小的那个子序列并将其从子序列中 去掉添加到最终的结果集中,直到两个子序列归并完成. 代码如下: #!/usr/bin/p

JavaScript数据结构与算法之栈详解

 这篇文章主要介绍了JavaScript数据结构与算法之栈详解,本文讲解了对栈的操作.对栈的实现实例等内容,需要的朋友可以参考下     在上一篇博客介绍了下列表,列表是最简单的一种结构,但是如果要处理一些比较复杂的结构,列表显得太简陋了,所以我们需要某种和列表类似但是更复杂的数据结构---栈.栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现. 一:对栈的操作. 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端陈为栈顶.比如餐馆里面洗盘子,只能先洗

栈(stack)简介及实现

栈(stack)是简单的数据结构,但在计算机中使用广泛.它是有序的元素集合.栈最显著的特征是LIFO (Last In, First Out, 后进先出).当我们往箱子里存放一叠书时,先存放的书在箱子下面,我们必须将后存放的书取出来,才能看到和拿出早先存放的书. 栈中的每个元素称为一个frame.而最上层元素称为top frame.栈只支持三个操作, pop, top, push. pop取出栈中最上层元素(8),栈的最上层元素变为早先进入的元素(9). top查看栈的最上层元素(8). pus

java中栈Stack类操作

/** * Stack类 * 栈:桶型或箱型数据类型,后进先出,相对堆Heap为二叉树类型,可以快速定位并操作 * Stack<E>,支持泛型 * public class Stack<E> extends Vector<E> * Stack的方法调用的Vector的方法,被synchronized修饰,为线程安全(Vector也是) * Stack methods: * push : 把项压入堆栈顶部 ,并作为此函数的值返回该对象 * pop : 移除堆栈顶部的对象,

Python算法(含源代码下载)

 关键字:Python Algorithms Python算法  Mastering Basic Algorithms in the Python Language 使用Python语言掌握基本算法 Python Algorithms 副标题: Mastering Basic Algorithms in the Python Language作者: Magnus Lie Hetland 出版社: Apress出版年: 2010-11-24页数: 336定价: USD 49.99装帧: Paper

C#创建安全的栈(Stack)存储结构_C#教程

   在C#中,用于存储的结构较多,如:DataTable,DataSet,List,Dictionary,Stack等结构,各种结构采用的存储的方式存在差异,效率也必然各有优缺点.现在介绍一种后进先出的数据结构.    谈到存储结构,我们在项目中使用的较多.对于Task存储结构,栈与队列是类似的结构,在使用的时候采用不同的方法.C#中栈(Stack)是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义:堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆