自定義隊列結構 (學習隊列后,自己的碼)
主要功能:用列表模擬隊列結構,考慮了入隊,出隊,判斷隊列是否為空,是否已滿以及改變隊列大小等基本操作。
下面是封裝的一個類,把代碼保存在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.') “這個是什么意思,請大家給予答案!
以上就是這些,希望有所收獲,再接再勵。