自定义队列结构  (学习队列后,自己的码)

主要功能:用列表模拟队列结构,考虑了入队,出队,判断队列是否为空,是否已满以及改变队列大小等基本操作。

下面是封装的一个类,把代码保存在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.') “这个是什么意思,请大家给予答案!

以上就是这些,希望有所收获,再接再励。