python------栈和队列的实现
一、神马是栈
古有粮仓,即为栈。粮仓的特点就是最后放进去的谷粒,放在最上面。打仗行军,取粮是怎么取最快?肯定是最先取最上面的!栈这一种常用到的数据结构就是这种特点:后进先出(Last In First Out - LIFO),即最先进去的,最后被取出。
二、栈的python实现
class Stack():
# 初始化栈为空列表
def __init__(self):
self.items=[]
# 判断栈是否为空,返回布尔值False/True
def isempty(self):
return len(self.items)==0
# 把新的元素堆进栈里面(入栈,进栈)
def push(self,item):
self.items.append(item)
# 把栈顶元素丢出去(出栈)
def pop(self):
return self.items.pop()
# 返回栈的大小
def size(self):
return len(self.items)
# 返回栈顶元素
def peek(self):
return self.items[-1] if __name__ == '__main__':
# 初始化一个栈对象
my_stack = Stack()
# 把'h'丢进栈里
my_stack.push('h')
# 把'a'丢进栈里
my_stack.push('a')
# 看一下栈的大小(有几个元素)
print(my_stack.size())
# 打印栈顶元素
print(my_stack.peek())
# 把栈顶元素丢出去,并打印出来
print(my_stack.pop())
# 再看一下栈顶元素是谁
print(my_stack.peek())
# 这个时候栈的大小是多少?
print(my_stack.size())
# 再丢一个栈顶元素
print(my_stack.pop())
# 看一下栈的大小
print(my_stack.size)
# 栈是不是空了?
print(my_stack.isempty())
三、神马是队列
与栈类似,但不同。超市购物排队付款就是队列,先到的最先付款,这种数据结构称为队列,即先进先出!
四、队列的python实现
class Queue():
# 初始化队列为空列表
def __init__(self):
self.items=[]
# 判断队列是否为空,返回布尔值False/True
def isempty(self):
return len(self.items)==0
#入队
def enqueue(self,item):
self.items.insert(0,item)
#出队
def dequeue(self):
return self.items.pop()
#队列长度
def size(self):
return len(self.items)
python------栈和队列的实现的更多相关文章
- Python 栈、队列的实现
在python中,列表既可以作为栈使用,又可以作为队列使用. 把列表作为栈使用 栈:后进先出 stack=[1,2,3] stack.append(4) #入栈,以列表尾部为栈顶 print(stac ...
- python栈、队列、文件目录遍历
一. 栈与队列 关注公众号"轻松学编程"了解更多. 1. 栈 stack 特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上 mystack = [] #压栈[向 ...
- Python 栈和队列,双向队列
# 栈 # 特点: 先进后出 class StackFullException(Exception): pass class StackEmptyException(Exception): pass ...
- python - 栈与队列(只有代码)
1. 栈: - 后进先出 class Stack(object): def __init__(self): self.stack = [] def peek(self): return self.st ...
- python 栈和队列(使用list实现)
5.1.1. Using Lists as Stacks The list methods make it very easy to use a list as a stack, where the ...
- python 栈和队列
class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push ...
- python数据结构之栈、队列的实现
这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...
- 【DataStructure In Python】Python模拟栈和队列
用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque.以下内容为栈: #! /usr/bin/env python # DataStructure Stack ...
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- python之单例模式、栈、队列和有序字典
一.单例模式 import time import threading class Singleton(object): lock = threading.RLock() # 定义一把锁 __inst ...
随机推荐
- js 选项卡制作
知识回顾,制作JS选项卡,仅供参考 html代码: <!DOCTYPE html> <html lang="en"> <head> <me ...
- Module build failed: Error: No PostCSS Config found
使用vue框架写pc页面时,我们经常会用到element-ui这个框架. 当我们把需要的东西都装在好运行项目的时候,有时会出现这样的错误: 这是因为缺少了一个配置文件,postcss.config.j ...
- jQuery+php实现二级联动
public function liandong(){ $arr = Db::table("city")->where("pid=0")->sele ...
- ie11 调试工具不能使用
使用ie11仿真ie8测试兼容性的时候,方便调试 dom和仿真都不能用 搜索 https://www.ludou.org/win7-ie-11-f12-bug.html也有相关问题 安装补丁 64位的 ...
- 一个关于EasyUI超恶心的BUG。。。Cannot read property 'options' of undefined
控制台Console抛出的异常: jquery.easyui.min.js:9148 Uncaught TypeError: Cannot read property 'options' of und ...
- 传输层——TCP报文头介绍
16位源端口号 16位目的端口号 32位序列号 32位确认序列号 4位头部长度 保留6位 U R G A C K P S H R S T S Y N F I N 16位窗口大小 16位检验和 16位紧 ...
- Uni2D 入门 -- Skeletal Animation
转载 csdn http://blog.csdn.net/kakashi8841/article/details/17615195 Skeletal Animation Uni2D V2.0 引进了一 ...
- MVC异步控制器加载一个网页的所有内容
public void PageAsync() { AsyncManager.OutstandingOperations.Increment(); WebRequest req = WebReques ...
- C# 13位时间戳转换成标准时间C#代码
原地址:https://www.cnblogs.com/yixuehan/p/5559244.html /// <summary> /// 时间戳转换成标准时间 /// </summ ...
- Spring 手动 提交事务
1.配置文件 applicationContext.xml: <bean id="txManager"class="org.springframework.jdbc ...