Python数据结构之栈的实现
一图胜千言,看图!
代码code:
#coding:utf-8
#常见数据结构之栈的实现
class Stack(): #创建Stack类
def __init__(st,size):
st.stack=[] #栈为列表
st.size=size #size就是容量
st.top=-1#-1看图片解释的很清楚
def push(st,content):#放入数据进栈的时候
if st.Full():#如果栈满了是真的事件
print "Stack is Full"#输出这个
else:
st.stack.append(content)#向栈中添加数据
st.top=st.top+1#每次添加数据长度都会+1
def out(st):#从栈中拿出数据
if st.Empty():#如果是栈为空
print "Stack is Empty"
else:
st.top=st.top-1#因为把数据从栈中拿出来,所以每次长度都会-1
def Full(st):#创建栈满的时候
if st.top==st.size:#如果长度=容器的长度
return True#返回真
else:
return False#返回假
def Empty(st):#创建栈为空
if st.top==-1:#因为栈的初始位置是-1,如果是-1的话
print "Stack is Empty!"#输出
else:
return False#输出假
代码运行结果如下:
完毕!
Python数据结构之栈的实现的更多相关文章
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- python数据结构之栈、队列的实现
这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...
- python数据结构之栈
栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素.访问元素.删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语: ...
- Python数据结构:栈 队列
栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征 2.队列(queue)是一种具有 ...
- python——python数据结构之栈、队列的实现
这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...
- Python数据结构之“栈”与“队列”
栈(Stacks): ·定义:是一种只能通过访问其一端来实现的数据存储于检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征 ·主要操作: 1. Stack():建立 ...
- python数据结构实现(栈和链栈)
栈 class Stack: def __init__(self, limit: int 10): self.stack = [] self.limit = limit def __bool__(se ...
- python数据结构之栈的构建
class Stack(object): def __init__(self): self.stack=[] def pop(self): return self.stack.pop() def pu ...
- 基础数据结构 之 栈(python实现)
栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...
随机推荐
- 关于PHP批量图片格式转换的问题--本文转成webp, 其他过程格式一样
最近要把项目中的图片全部生成webp格式, 过程整理一下, (直接存在本地,或者图片链接存在数据库都可以看看) 首先,肯定是批量处理, 一个php处理不了这么多, 会爆内存的, 个人建议用aja ...
- CentOS7安装Jenkins,使用war方式直接运行或用yum方式安装运行
jenkins最简单的安装方式呢,就是直接去官网下载jenkins的war包,把war丢到tomcat里运行,直接就能打开了. Jenkins官网:https://jenkins.io/downloa ...
- 【gedit】 显示行号
打开gedit文本编辑器->Edit(编辑)->preferences(预设)->view(视图)->在Display line numbers前打勾->close
- python pip安装找不到指定包的时候怎么解决
在该网址上下载对应版本的包然后安装即可. https://www.lfd.uci.edu/~gohlke/pythonlibs/
- SQL Server与SQL Server Express的区别
SQL Server Express 2005(以下简称 SQLExpress) 是由微软公司开发的 SQL Server 2005(以下简称 SQL2005)的缩减版,这个版本是免费的,它继承了 S ...
- html5 autoplay不起作用 Uncaught (in promise) DOMException: play() failed because the user didn't interac
chrome://flags/#autoplay-policy
- react用class关键字来创建组件
创建组件之前,首先学习一个ES6的写法,叫做展开运算符. 比如我这里有两个数组.如何将第二个数组o2中的所有属性导入到数组o1中呢?一个个输太麻烦,所以就用到了展开运算符. var o2={ age: ...
- Web API 2 Entity Framework 使用 Procedure
Recently I worked on a project, which I started as code first and then I forced to switch to Databas ...
- MySQL字段属性NUll的注意点
MySQL字段属性应该尽量设置为NOT NULL 除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL.这看起来好像有点争议,请往下看. 空值("&quo ...
- 常用模块collections
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...