自定义队列结构 (学习队列后,自己的码)
主要功能:用列表模拟队列结构,考虑了入队,出队,判断队列是否为空,是否已满以及改变队列大小等基本操作。
下面是封装的一个类,把代码保存在myQueue.py文件中(我保存在” C:/Users/Administrator/Desktop/时间宝/python/myQueue.py“中)。
1 class myQueue: #构造函数,默认队列大小10 2 def __init__(self,size=10): 3 self._content=[] 4 self._size=size 5 self._current=0 6 7 def setSize(self,size): 8 if size<self._current: #如果缩小队列,应删除后面的元素 9 for i in range(size,self._current)[::-1]: 10 del self._content[i] 11 self._current=size 12 self._size=size 13 14 def put(self,v): #入队 15 if self._current<self._size: 16 self._content.append(v) 17 self._current=self._current+1 18 else: 19 print('The queue is full') 20 21 def get(self): #出队 22 if self._content: 23 self._current=self._current-1 24 return self._content.pop(0) 25 else: 26 print('The queue is empty') 27 28 def show(self): #显示所有元素 29 if self._content: 30 print(self._content) 31 else: 32 print('The queue is empty') 33 34 def empty(self): 35 self._content=[] 36 37 def isEmpty(self): #判断是否已满 38 if not self._content: 39 return True 40 else: 41 return False 42 43 def isFull(self): #判断是否为空 44 if self._current==self._size: 45 return True 46 else: 47 return False 48 49 if __name__=='__main__': 50 print('Please use me as a module.') 51
下面是演示自定义队列类的用法:
1 ======= RESTART: C:/Users/Administrator/Desktop/时间宝/python/myQueue.py ======= 2 Please use me as a module. 3 >>> import myQueue 4 >>> q=myQueue.myQueue() 5 >>> q.get() 6 The queue is empty 7 >>> q.put(5) 8 >>> q.put(7) 9 >>> q.idFull() 10 >>> q.isFull() 11 False 12 >>> q.put('a') 13 >>> q.put(3) 14 >>> q.show() 15 [5, 7, 'a', 3] 16 >>> q.setSize(3) 17 >>> q.show() 18 [5, 7, 'a'] 19 >>> q.put(10) 20 The queue is full21 >>> q.setSize(5) 22 >>> q.put(10) 23 >>> q.show() 24 [5, 7, 'a', 10]
有个小问题就是“if __name__=='__main__':
print('Please use me as a module.') “这个是什么意思,请大家给予答案!
以上就是这些,希望有所收获,再接再励。