算法----写一个队列
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 """
写一个队列队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元素删除。我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现队列的入队enqueue和出队dequeue的操作,上面栈一个元素每次出去是列表的最后一个,直接用list.pop()出栈,而出队列每次是第一个,所以要用list.pop(0)出队列
class Queue(): def __init__(self,size): self.size=size self.front=-1 #头指针 self.rear=-1 self.queue=[]#尾指针
def enqueue(self,ele):#入队操作 if self.isfull(): raise exception("queue is full") else: self.queue.append(ele) self.rear=self.rear+1
def dequeue(self)#出队 if self.isempty(): raise exception("queue is empty") else: self.queue.pop(0) self.front=self.front+1
def isfull(self): return self.rear-self.front+1==self.size def isempty(self): return self.front==self.read def showQueue(self): print(self.queue)
q=Queue(10): for i in range(10): q.enqueue(i)#10个入队
q.showQueue()
for i in range(6): q.dequeue()#6个入队
q.showQueue()"""类中设置两个属性分别为front和rear来模拟队列的头尾指针,通过它们值的关系可以判定队列是空还是满"""

浙公网安备 33010602011771号