python 用list实现队列_Python 使用list实现队列 (基于class, 包含迭代器)

Python 使用list实现队列 (基于class, 包含迭代器)

浏览次数:

发布时间:2015-02-02 11:04

#!/usr/bin/python

# -*- coding: utf-8 -*-

'''

Created on 2015-1-27

@author: beyondzhou

@name: test_listqueue.py

'''

def test_listqueue():

# import pyListQueue

from myqueue import pyListQueue

print '#Init a queue named smith using enqueue'

smith = pyListQueue()

smith.enqueue('CSCI-112')

smith.enqueue('MATH-121')

smith.enqueue('HIST-340')

smith.enqueue('ECON-101')

print '\n#output smith queue'

for element in smith:

print element

print '\n#dequeue one item'

smith.dequeue()

print '\n#output smith after dequeue'

for element in smith:

print element

print '\n#get the length of queue'

print 'the lenght of queue is ', len(smith)

print '\n#check wheter the queue is empty'

if smith.isEmpty():

print 'queue is empty!'

else:

print 'queue is not empty!'

print '\n#dequeue all items'

while not smith.isEmpty():

smith.dequeue()

print '\n#check wheter the queue is empty after dequeue all items'

if smith.isEmpty():

print 'queue is empty!'

else:

print 'queue is not empty!'

if __name__ == "__main__":

test_listqueue()

# Implementation of iter

class _pyListQueueIterator:

def __init__(self, theList):

self._setItems = theList

self._curItem = 0

def __iter__(self):

return self

def next(self):

if self._curItem < len(self._setItems):

item = self._setItems[self._curItem]

self._curItem += 1

return item

else:

raise StopIteration

# Implementation of the Queue ADT using a Python list

class pyListQueue:

# Creates an empty queue

def __init__(self):

self._qList = list()

# Returns True if the queue is empty

def isEmpty(self):

return len(self) == 0

# Returns the number of items in the queue

def __len__(self):

return len(self._qList)

# Adds the given item to the queue

def enqueue(self, item):

self._qList.append(item)

# Removes and returns the first item in the queue

def dequeue(self):

assert not self.isEmpty(), "Cannot dequeue from an empty queue."

return self._qList.pop(0)

# Returns an iterator for traversing the list of items

def __iter__(self):

return _pyListQueueIterator(self._qList)

#Init a queue named smith using enqueue

#output smith queue

CSCI-112

MATH-121

HIST-340

ECON-101

#dequeue one item

#output smith after dequeue

MATH-121

HIST-340

ECON-101

#get the length of queue

the lenght of queue is 3

#check wheter the queue is empty

queue is not empty!

#dequeue all items

#check wheter the queue is empty after dequeue all items

queue is empty!

,站群系统

相关报道:

!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=http://www.w3.org/1999/x 更多

jps命令的格式和使用介绍。Java Virtual Machine Process Status Tool 可以列出本机所有Java进程的pid。功能和ps类似:可以列出正 更多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值