一、神马是栈

  古有粮仓,即为栈。粮仓的特点就是最后放进去的谷粒,放在最上面。打仗行军,取粮是怎么取最快?肯定是最先取最上面的!栈这一种常用到的数据结构就是这种特点:后进先出(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------栈和队列的实现的更多相关文章

  1. Python 栈、队列的实现

    在python中,列表既可以作为栈使用,又可以作为队列使用. 把列表作为栈使用 栈:后进先出 stack=[1,2,3] stack.append(4) #入栈,以列表尾部为栈顶 print(stac ...

  2. python栈、队列、文件目录遍历

    一. 栈与队列 关注公众号"轻松学编程"了解更多. 1. 栈 stack 特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上 mystack = [] #压栈[向 ...

  3. Python 栈和队列,双向队列

    # 栈 # 特点: 先进后出 class StackFullException(Exception): pass class StackEmptyException(Exception): pass ...

  4. python - 栈与队列(只有代码)

    1. 栈: - 后进先出 class Stack(object): def __init__(self): self.stack = [] def peek(self): return self.st ...

  5. 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 ...

  6. python 栈和队列

    class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push ...

  7. python数据结构之栈、队列的实现

    这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...

  8. 【DataStructure In Python】Python模拟栈和队列

    用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque.以下内容为栈: #! /usr/bin/env python # DataStructure Stack ...

  9. python数据结构之栈与队列

    python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...

  10. python之单例模式、栈、队列和有序字典

    一.单例模式 import time import threading class Singleton(object): lock = threading.RLock() # 定义一把锁 __inst ...

随机推荐

  1. HTTP梳理

    HTTP请求头 Host:初始URL中的主机名和端口 Accept:浏览器可接受的MIME类型 Acceept-Charset:浏览器接受的字符集 Accept-Encoding:浏览器能够进行解码的 ...

  2. Django - cookies 会话跟踪技术

    一.HTTP协议的无状态保存 两次请求之间没有关联 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2.会话路径技术使用Cookie或session完成 我们知道HTTP ...

  3. Linux:服务器/客户端API调用错误检查

    昨天和今天上午,我分别实现简单的服务器和客户端,运行之后表示没问题,一切正常.但是这还是有问题的,最大的一个就是没有错误检查.现在我们来加上错误检查: 服务器的代码: #include <std ...

  4. 将文本文件中的\n字符串变成换行符

    1.用notepad打开文件 2.查看换行符,不同操作系统的换行符是不同的. [视图]——[显示符号]——[显示行尾符]. 我的操作系统是windows,所以行尾符是CR LF——对应的正则表达式是\ ...

  5. 获取jdk支持的编码类型

    //获取jdk支持的编码类型 Map<String,Charset> maps = Charset.availableCharsets(); for(Map.Entry<String ...

  6. Python之路 - 网络编程之粘包

    Python之路 - 网络编程之粘包 粘包

  7. unity3d API知识点随记

    1.transform.translate是增加transform面板相应的数值x,y,z是以本地坐标系为方向:transform.transformdirection是以世界坐标系为方向,可以去测试 ...

  8. CentsOS6 Tomcat7 报javax.management.InstanceNotFoundException 解决办法

    警告: Failed to unregister MBean with name [Catalina:j2eeType=Servlet,name=UploadServlet,WebModule=//l ...

  9. 详解MySQL数据表类型

    学习Mysql数据库,Mysql表类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql表类型,希望能对您学习Mysql表类型有所帮助. MySQL作为当前最为流行的免费数据库服务引擎,已经风靡了 ...

  10. PPT的感想

    ①double:使用double类型的数值进行计算, 其结果是不精确的.因为double类型的数值占用64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差. 这个涉及到二进制 ...