剛開始學python——數據結構——“自定義隊列結構“


自定義隊列結構  (學習隊列后,自己的碼)

主要功能:用列表模擬隊列結構,考慮了入隊,出隊,判斷隊列是否為空,是否已滿以及改變隊列大小等基本操作。

下面是封裝的一個類,把代碼保存在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.') “這個是什么意思,請大家給予答案!

以上就是這些,希望有所收獲,再接再勵。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM