队列的实现

 1 class Queue():
 2     def __init__(self, size=100):
 3         self.rear = 0
 4         self.front = 0
 5         self.size = size + 1
 6         self.li = [0 for _ in range(self.size)]
 7 
 8     def is_empty(self):
 9         return self.front == self.rear
10 
11     def is_full(self):
12         return (self.rear + 1) % self.size == self.front
13 
14     def en_queue(self, element):
15         if not self.is_full():
16             self.rear = (self.rear + 1) % self.size
17             self.li[self.rear] = element
18         else:
19             raise IndexError("The queue is filled!")
20 
21     def de_queue(self):
22         if not self.is_empty():
23             self.front = (self.front + 1) % self.size
24             return self.li[self.front]
25         else:
26             raise IndexError("The queue is empty!")
27 
28 
29 if __name__ == '__main__':
30     que = Queue(5)
31     for i in range(3):
32         que.en_queue(i)
33     for _ in range(2):
34         print(que.de_queue())
35     for i in range(3, 7):
36         que.en_queue(i)
37     for _ in range(5):
38         print(que.de_queue())

 

posted @ 2021-12-06 20:08  Avery_rainys  阅读(26)  评论(0)    收藏  举报