python中用list实现queue

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头部取得一个元素

猜你喜欢

转载自blog.csdn.net/weixin_44311188/article/details/85767425
今日推荐