注:本文档主要是学习《Python核心编程(第二版)》时的练习题。

队列是一种"先进先出"的数据结构(FIFO),是一种操作受限的线性结构,先进队列的成员先出队列。示意图如下:

代码如下:

 #!/usr/bin/env python

 queue = []

 def enQ():
queue.append(raw_input('Enter new string: ').strip()) def deQ():
if len(queue) == 0:
print 'Cannot pop from an empty queue!'
else:
print 'Remove [', queue.pop(0), ']' def viewQ():
print queue CMDs = {'e':enQ, 'd':deQ, 'v':viewQ} def showmenu():
pr = """
(E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: """ while True:
try:
choice = raw_input(pr).strip()[0].lower()
except (EOFError, keyboardInterrupt, IndexError):
choice = 'q' print '\nYour picked: [%s]' % choice if choice == 'q':
break
elif choice not in 'dev':
print 'Invalid option, try again'
else:
CMDs[choice]() if __name__ == '__main__':
showmenu()

测试现象:

 [root@localhost python]# python queue.py    

 (E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: e Your picked: [e]
Enter new string: abcd (E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: e Your picked: [e]
Enter new string: 1234 (E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: v Your picked: [v]
['abcd', ''] (E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: d Your picked: [d]
Remove [ abcd ] (E)nqueue
(D)equeue
(V)iew
(Q)uit Enter choice: v Your picked: [v]
[''] (E)nqueue
(D)equeue
(V)iew
(Q)uit

python实现数据结构-队列的更多相关文章

  1. 用Python实现数据结构之队列

    队列 队列与栈的类型很相似,但它遵循的原则是先进先出(FIFO),也就是元素插入的时候只能在该数据结构的末端,而删除只能删除最前面的元素.队列同样应用广泛,例如打印机的队列或者是一个web服务器响应请 ...

  2. python 与数据结构

    在上面的文章中,我写了python中的一些特性,主要是简单为主,主要是因为一些其他复杂的东西可以通过简单的知识演变而来,比如装饰器还可以带参数,可以使用装饰类,在类中不同的方法中调用,不想写的太复杂, ...

  3. [0x00 用Python讲解数据结构与算法] 概览

    自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...

  4. (python数据分析)第03章 Python的数据结构、函数和文件

    本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...

  5. javascript数据结构——队列

    队列是一种先进先出的数据结.队列只能在队尾插入元素,在队首删除元素,这点和栈不一样.它用于存储顺序排列的数据.队列就像我们日常中的排队一样,排在最前面的第一个办理业务,新来的人只能在后面排队.队列这种 ...

  6. Python高级数据结构-Collections模块

    在Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了之中,认识了python基本的数据类型和数据结构,现在认识一个高级的:Collections 这个模块对上面的数据结构做了封装,增加 ...

  7. python之消息队列

    引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题.消息服务擅 ...

  8. Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET

    Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET Python -- 堆数据结构 heapq 分类: Python 2012-09 ...

  9. java 数据结构 队列的实现

    java 数据结构队列的代码实现,可以简单的进行入队列和出队列的操作 /** * java数据结构之队列的实现 * 2016/4/27 **/ package cn.Link; import java ...

随机推荐

  1. Linux环境下安装mysql(远程连接),zookeeper,java,tomcat.

    环境阿里云centos7.5 64位 + FinalShell + Navicat Permium 12 用到的压缩包(版本看后缀) 注意:安装均在/usr/local目录下,下面代码中#号不要复制上 ...

  2. 备战省赛组队训练赛第七场(UPC)

    传送门   日文题解:戳这里

  3. vue项目使用websocket做聊天项目总结

    一.首先我们先了解一下websocket的使用: 1.创建websocket const ws = new WebSocket("ws://192.168.31.136:9998/ws&qu ...

  4. 怎么彻底删除用友通T3财务软件?

    [问题现象]怎么彻底删除用友通T3财务软件? [原因分析]通过"添加或删除程序"无法正常卸载用友通T3,也尝试了360安全卫士强力卸载,都无法完全卸载,有没有办法可以彻底删除用友通 ...

  5. APP数据采集--基础配置

    一.首先需要下载fiddler,可以直接在官网下载最新版呢 二.设置允许抓取HTTPS数据: 打开已经下载好了的fiddler,打开在工具栏中的Tools,之后在HTTPS的工具栏下面进行如下的设置 ...

  6. 选题Scrum立会报告+燃尽图 02

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8680 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶,徐丽君 组名:组长 第 ...

  7. WeihanLi.Npoi 1.7.0 更新

    WeihanLi.Npoi 1.7.0 更新介绍 Intro 昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter/ColumnOutputF ...

  8. awsl

    from enum import Enum, uniquefrom math import sqrtfrom random import randint import pygame @uniquecl ...

  9. AES Base64 C++加密工具

    最近写了一段C++ 的AES 加密的工具,在github 上找了很多工具,都不太好用,Star数字比较的高的一个,只能加密16个字节的,加密数字长数据,会出现乱码,不能使用 这里附上代码,文件以供大家 ...

  10. 推荐中的多任务学习-YouTube视频推荐

    本文将介绍Google发表在RecSys'19 的论文<Recommending What Video to Watch Next: A Multitask Ranking System> ...