python中栈的原理及实现方法示例
作者:xlengji 发布时间:2023-05-01 02:54:33
标签: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程序设计有所帮助。
来源:https://blog.csdn.net/xlengji/article/details/82143396


猜你喜欢
- 代码及注释如下#Auther Bob#--*--conding:utf-8 --*--#生产者消费者模型,这里的例子是这样的,有一个厨师在做
- HTTP短连接(非持久连接)是指,客户端和服务端进行一次HTTP请求/响应之后,就关闭连接。所以,下一次的HTTP请求/响应操作就需要重新建
- 对于vue.js中的this.emit的理解:this.emit(‘increment1',”这个位子是可以加参数的”);其实它的作
- js部分setInterval("time_controller()",1000);function time_cont
- 直接使用Python来实现向量的相加# -*-coding:utf-8-*-#向量相加def pythonsum(n): a = range
- 本文实例讲述了Python实现获取汉字偏旁部首的方法。分享给大家供大家参考,具体如下:功能介绍传入一个汉字,返回其偏旁部首字典分为本地字典与
- 我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算;Pandas 也是 Python 环境下的数据操
- 一、背景介绍3月2日凌晨,OpenAI放出了真正的ChatGPT API,不是背后的GPT-3.5大模型,是ChatGPT的本体模型!Cha
- 在VsCode中ctrl+s后会在当前目录下自动生成dist目录解决办法:关闭compile-hero插件在设置中搜索compile-her
- 首先创建如下的数组和矩阵,其中a,b为数组,A,B为矩阵import numpy as npa = np.arange(1,5).resha
- 前言分析目标网站的登录方式目标地址: https://github.com/login 登录方式做出分析:
- 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想
- 微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的:详情参考官方文档:navigator。示例代
- 本文实例讲述了python中__call__方法的用法,分享给大家供大家参考。具体方法分析如下:Python中的__call__允许程序员创
- 前言Python是C语言实现的,因此Python对象在C语言层面应该是一个结构体 ,组织对象占用的内存。 不同类型的对象,数据及行为均可能不
- 网络上有很多关于语言选择的问题,其中关于Python和Java的问题大抵如下:Python和Java该如何选择 ?将来Python(Java
- 前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用。我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一
- JS获取多选框checkbox被选中的个数。var checkbox = document.getElementsByName("
- 除了使用Django内置表单,有时往往我们需要自定义表单。对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误&qu
- Win8.1下安装Python3.6提示0x80240017错误,如何解决?定位原因缺少Windows补丁KB2999226解决方法到Mic