本文实例讲述了Python队列的定义与使用方法。分享给大家供大家参考,具体如下:
虽然Python有自己的队列模块,我们只需要在使用时引入该模块就行,但是为了更好的理解队列,自己将队列实现了一下。
队列是一种数据结构,它的特点是先进先出,也就是说队尾添加一个元素,队头移除一个元素,类似于商场排队结账,先来的人先接账,后来的排在队尾。在我们日常生活中,发送短信就会用到队列。下面是Python实现队列的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/usr/bin/python
#coding=utf-8
class Queue( object ) :
def __init__( self , size) :
self .size = size
self .queue = []
def __str__( self ) :
return str ( self .queue)
#获取队列的当前长度
def getSize( self ) :
return len ( self .quene)
#入队,如果队列满了返回-1或抛出异常,否则将元素插入队列尾
def enqueue( self , items) :
if self .isfull() :
return - 1
#raise Exception("Queue is full")
self .queue.append(items)
#出队,如果队列空了返回-1或抛出异常,否则返回队列头元素并将其从队列中移除
def dequeue( self ) :
if self .isempty() :
return - 1
#raise Exception("Queue is empty")
firstElement = self .queue[ 0 ]
self .queue.remove(firstElement)
return firstElement
#判断队列满
def isfull( self ) :
if len ( self .queue) = = self .size :
return True
return False
#判断队列空
def isempty( self ) :
if len ( self .queue) = = 0 :
return True
return False
|
下面是该队列类.py文件的测试代码:
1
2
3
4
5
6
7
8
9
10
11
12
|
if __name__ = = '__main__' :
queueTest = Queue( 10 )
for i in range ( 10 ) :
queueTest.enqueue(i)
print queueTest.isfull()
print queueTest
print queueTest.getSize()
for i in range ( 5 ) :
print queueTest.dequeue()
print queueTest.isempty()
print queueTest
print queueTest.getSize()
|
测试结果:
希望本文所述对大家Python程序设计有所帮助。