python中用list实现queue
class myqueue():
def push(self,a):
if self.count>=self.maxsize:
print('The queue has been full!')
return
if self.max>=(self.maxsize-1):
self.max=0
self.l1[self.max]=a
self.count+=1
else:
self.max+=1
self.count+=1
if len(self.l1)>=self.maxsize:
self.l1[self.max]=a
else:
self.l1.append(a)
def pop(self):
if self.count==0:
print('The queue is empty!')
return
else:
if self.min==-1:
self.min=0
res=self.l1[self.min]
self.count-=1
if self.min>=(self.maxsize-1):
self.min=0
else:
self.min+=1
return res
def __init__(self):
self.maxsize=5000
self.max=-1
self.min=-1
self.count=0
self.l1=[]
def setmaxsize(self,s):
if isinstance(s,int)==False:
return
if s<=0:
return
if s<self.maxsize:
print('Do not support shrink!')
return
if self.count != 0:
print('The queue must be empty before this operation!')
return
else:
maxsize=s
def count(self):
return self.count
def getmaxsize(self):
return self.maxsize
类myqueue包含以下method:
getmaxsize(): 获得queue的最大容量
setmaxsize(s):设置queue的最大容量,queue必须为空,不支持缩小
count(): 获得queue的元素数
push(a):往queue尾部添加一个元素
pop():从queue头部取得一个元素