Queue (队列),俗称FIFO结构,主要操作有两个,enqueue(入队)和dequeue(出队),数组实现还有一个succ(回绕)操作。
图里只画了链表结构的enqueue和dequeue,还有线性结构的succ。
代码只做了线性结构的,其他自己补完吧。
:)
#! /usr/bin/env python3
# coding:utf-8
class QueueException(Exception): pass
class QueueOverFlow(QueueException): pass
class QueueUnderFlow(QueueException): pass
class Queue:
def __init__(self, max_size):
self.max_size = max_size
self.data = [None] * max_size
self.size = 0
self.front = 0
self.rear = 0
def is_empty(self):
return self.size == 0
def is_full(self):
return self.size == self.max_size
def succ(self, current_index):
return (current_index + 1) % self.max_size
def enqueue(self, data):
if self.is_full():
raise QueueOverFlow
self.data[self.rear] = data
self.rear = self.succ(self.rear)
self.size += 1
def dequeue(self):
if self.is_empty():
raise QueueUnderFlow
data = self.data[self.front]
self.front = self.succ(self.front)
self.size -= 1
return data
- 大小: 3.6 MB
分享到:
相关推荐
taocp-en-djvu
陶锈在锈蚀中实施了各种TAOCP练习。
TAOCP卷一
TAOCP Errata TAOCP Errata TAOCP Errata TAOCP Errata TAOCP Errata
mmix 文档,用于knuth编著的taocp。 可学习mmix汇编语言。
TAOCP作为一个资料库是绝对优秀的,基础的算法只要你能想到的,几乎都可以在上面找到原始出处。
TAOCP, 算是到现在为止已经写出来的
TAOCP作为一个资料库是绝对优秀的,基础的算法只要你能想到的,几乎都可以在上面找到原始出处。
这个不用多说了吧,7卷计算机编程艺术的数学基础。想看TAOCP的必看。
计算机程序设计艺术(第三版,英文版,第一卷:基本算法),TAOCP V1 3rd Edition,英文扫描版,清晰,带书签
MMIX 手册(TAOCP第一卷中的相关部分)
最著名的算法分析书,作者是顶尖大牛,英文原版,第三版。
Addison Wesley - 2001 - Knuth - The Art of Computer Programming Vol I II III IV全卷共165MB.一共只要15分. 我也是下载后自行打包的.原来一共8卷,每个3分,用了我24分. 拿来共积分不多的人下载.
计算机程序设计艺术(第一卷)
第三章 Random Number 3.1 Introduction 3.2 generating uniform random numbers ... 第四章 Arithmetic
计算机程序设计技巧3.排序查找计算机程序设计技巧3.排序查找
TAOCP作为一个资料库是绝对优秀的,基础的算法只要你能想到的,几乎都可以在上面找到原始出处。
经典数据结构与算法书,历经几十年仍然经典!虽使用古老的汇编语言,但是历久常新。好书! 啥?!看完了?大犇!!!去自己创业吧。
它演示了排序的未决事件队列和单个线程(对于Go,为一个goroutine)如何模仿并行处理。 虽然可以使用基本的人为设计系统来解释该概念,但Knuth精心设计了15页的数学大楼中的电梯系统(忽略了随后的练习)。 并且,...
TAOCP 计算机编程艺术 清晰pdf版