1、Python数据结构——队列

队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。

队列是一种先进先出(First-In-First-Out,FIFO)的数据结构。队列被用在很多地方,比如提交操作系统执行的一系列进程、打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客。

queue的常用操作:

Queue()        定义一个空队列,无参数,返回值是空队列。
enqueue(item)  在队列尾部加入一个数据项,参数是数据项,无返回值。
dequeue()      删除队列头部的数据项,不需要参数,返回值是被删除的数据,队列本身有变化。
isEmpty()      检测队列是否为空。无参数,返回布尔值。
clear()        清空队列,无参无返回值
size()         返回队列数据项的数量。无参数,返回一个整。

具体实现如下:

class Queue(object):#定义一个空队列def __init__(self):self.items = []#队列(只能在队尾)添加一个元素def enqueue(self, item):self.items.append(item)#删除队列(只能在对头)一个元素def dequeue(self):self.items.pop(0)#判断队列是否为空def isEmpty(self):return(self.items == [])#清空队列def clear(self):del(self.items) #该队列就不存在了,而不是清空元素#返回队列项的数量def size(self):return(len(self.items))#打印队列def print(self):print(self.items)
if __name__ == '__main__':q = Queue()print(q.isEmpty())for i in range(5):q.enqueue(i)print(q.size())q.print()q.dequeue()q.print()q.clear()print(q)

2、Python数据结构——栈

栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。咖啡厅内的一摞盘子是现实世界中常见的栈的例子。只能从最上面取盘子,盘子洗净后,也只能摞在这一摞盘子的最上面。

栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。

stack的常用操作:

Stack()    建立一个空的栈对象。
push(item) 把一个元素添加到栈的最顶层。
pop()      删除栈最顶层的元素,并返回这个元素。
peek()     返回最顶层的元素,并不删除它。
clear()    清空栈。
isEmpty()  判断栈是否为空。
size()     返回栈中元素的个数。

具体实现如下:

class Stack(object):#定义一个空栈def __init__(self):self.items = []#添加一个元素def push(self, item):self.items.append(item)#删除一个元素def pop(self):return(self.items.pop())#返回栈顶def peek(self):return(self.items[-1])#清空栈def clear(self):del(self.items)#判断是否为空def isEmpty(self):return(self.items == [])#返回栈中元素个数def size(self):return(len(self.items))#打印栈def print(self):print(self.items)
if __name__ == '__main__':s = Stack()print(s.isEmpty())for i in range(5):s.push(i)s.print()s.pop()s.print()print(s.size())print(s.peek())s.clear()

python 队列与栈的实现相关推荐

  1. python中的队列和栈_python的队列和栈

    (一)队列和栈的区别 1.队列: 队列是一种特殊的线性表.其两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端 ...

  2. python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt

    数据结构与算法:Python语言描述 栈和队列 迷宫问题 迷宫问题的特点: 存在一集可能位置,一些位置相互连通,一步可达 一个位置可能连通若干位置,出现向前探查的多种可能(有分支) 目标是找到一条路径 ...

  3. python链表实现栈_python实现链表队列栈

    #!/usr/bin/python # -*- coding: utf-8 -*- #便于测试 data 使用数字 class Node(object): def __init__(self,data ...

  4. python 栈和队列_python 栈和队列的基本实现

    python中的列表结构可以用来实现栈和队列. [栈]: 栈是一种数据结构,具有先入后出的特点,并且栈的所有操作只能在某一端进行,能进行操作的一端的第一个元素称为栈顶,另一端的第一个元素称为栈底 栈的 ...

  5. python实现队列_Python学习教程:用队列实现栈

    接着上一期跟大家说的用栈实现队列,这期的 Python学习教程 跟大家讲 用队列实现栈 题目: 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() ...

  6. python优先队列,队列和栈

    打印列表的疑问 class Node:def __str__(self):return "haha"print([Node(),Node()]) print(Node()) 输出为 ...

  7. python实现栈的操作_python简单实现队列和栈push、pop操作

    栈: # -*- coding: utf-8 -*- #定义序列 lst=[] def pop(): if(len(lst)==0): print"栈为空","无法出栈& ...

  8. python基本数据结构栈stack和队列queue

    1,栈,后进先出,多用于反转 Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作. 栈的实现: class Stack(object):#初始化栈为空列表def __i ...

  9. python实现队列和栈

    python实现队列和栈 1.list 2.collections.deque 3.queue.LifoQueue 1.list 队列:insert列表首部插入,pop() 栈:append列表尾部添 ...

最新文章

  1. Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现
  2. C语言:指针的几种形式
  3. 绿色计算在数据中心的应用及节能效果浅析
  4. OpenCASCADE绘制测试线束:数据交换命令之STEP 命令
  5. oclick vue 传参 函数_详解Vue计算属性和侦听属性
  6. DS实验题 Inversion
  7. 电脑上安装了多个版本的nodejs,如何知道node命令调用的哪一个
  8. 设计模式之策略者模式
  9. 函数调用关系图如何画_彩铅画入门植物教程 | 如何用彩铅画一株多肉?多肉彩铅画教程步骤图详细...
  10. 我们的java项目,要不要废弃switch
  11. Linux内核开发人员考虑剔除对更多老旧平台的处理器支持
  12. Binary String Constructing(CodeForces - 1003B)
  13. C# DevExpress ChartControl用法总结
  14. Go学习笔记—定时器、打点器
  15. ansible进阶(五)-handlers-任务发生更改时触发操作
  16. Solidjs 简介
  17. (栈的应用5.2.2)POJ 2106 Boolean Expressions(表达式求值)
  18. 【Electron】 NSIS 打包 Electron 生成exe安装包
  19. 关于jmeter中编写shell脚本json的应用
  20. 院士李德毅:大数据认知(演讲全文)

热门文章

  1. JHipster生成微服务架构的应用栈(一)- 准备工作
  2. SpringCloud的微服务网关:zuul(理论)
  3. java内存泄露问题
  4. 微信公众号之微信买单
  5. [HNOI2010]BOUNCE 弹飞绵羊
  6. BZOJ 2115 Wc2011 Xor DFS+高斯消元
  7. JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法
  8. 创建、部署和卸载SharePoint工作流解决方案包(WSP)
  9. SharePoint Designer 2007发布WorkFlow的小bug
  10. mpandroidchart y轴从0开始_从零开始学Pytorch(十七)之目标检测基础