1 写一个队列
2 队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,
3 新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元素删除。
4 我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现队列的入队enqueue和出队dequeue的操作,
5 上面栈一个元素每次出去是列表的最后一个,直接用list.pop()出栈,而出队列每次是第一个,所以要用list.pop(0)出队列
6
7 class Queue():
8 def __init__(self,size):
9 self.size=size
10 self.front=-1 #头指针
11 self.rear=-1
12 self.queue=[]#尾指针
13
14 def enqueue(self,ele):#入队操作
15 if self.isfull():
16 raise exception("queue is full")
17 else:
18 self.queue.append(ele)
19 self.rear=self.rear+1
20
21 def dequeue(self)#出队
22 if self.isempty():
23 raise exception("queue is empty")
24 else:
25 self.queue.pop(0)
26 self.front=self.front+1
27
28 def isfull(self):
29 return self.rear-self.front+1==self.size
30 def isempty(self):
31 return self.front==self.read
32 def showQueue(self):
33 print(self.queue)
34
35 q=Queue(10):
36 for i in range(10):
37 q.enqueue(i)#10个入队
38
39 q.showQueue()
40
41 for i in range(6):
42 q.dequeue()#6个入队
43
44 q.showQueue()
45 """
46 类中设置两个属性分别为front和rear来模拟队列的头尾指针,通过它们值的关系可以判定队列是空还是满
47 """