python队列Queue 详解python数据结构之队列Queue
jianshuilan_0613 人气:0想了解详解python数据结构之队列Queue的相关内容吗,jianshuilan_0613在本文为您仔细讲解python队列Queue的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python队列Queue,python数据结构,下面大家一起来学习吧。
一、前言
队列Queue是一种先进先出(FIFO,First In First Out)的线性表。允许一端进行插入(rear),对应的另一段进行删除(front)。
本篇包含以下内容:
(1)Queue的基本格式
(2)入队列en_queue
(3)删除数据函数 de_queue
二、Queue的基本格式
class Queue(): def __init__(self,size): self.size = size self.front = -1 #设置front初始值,每出队列一个数据就加 1 self.rear = -1 #设置rear初始值,每入队列一个数据就加 1 self.queue = [] #队列中数据的列表 def display_queue(self): #打印队列数据 print(self.queue) if __name__ == "__main__": queue = Queue(6) #设置队列queue的空间大小 queue.display_queue() #调用打印函数
三、入队列函数 en_queue
class Queue(): def __init__(self,size): self.size = size self.front = -1 self.rear = -1 self.queue = [] def en_queue(self,data): if self.rear >= (self.size -1): #当入队列数据数量大于队列的size,提示queue is full! print("queue is full!") return self.queue.append(data) #queue有空间就将数据入队列 self.rear += 1 #每入队列一个数据就加 1 def display_queue(self): print(self.queue) if __name__ == "__main__": queue = Queue(6) queue.en_queue(0) queue.en_queue(1) queue.en_queue(2) queue.en_queue(3) queue.en_queue(4) queue.en_queue(5) queue.en_queue(6) #queue空间是 6,入队列数据有 7 个,提示queue is full! queue.display_queue()
执行结果:
四、删除数据函数 de_queue
class Queue(): def __init__(self,size): self.size = size self.front = -1 self.rear = -1 self.queue = [] def en_queue(self,data): if self.rear >= (self.size -1): print("queue is full!") return self.queue.append(data) self.rear += 1 def de_queue(self): if self.rear < 0: #rear表示队列中数据的多少,所以当它小于0时说明queue中没有数据 print("queue is empty!") return self.front += 1 #当queue不为空时,每出队列一个数据 front就加 1 self.queue.pop(0) #删除最先进来的数据 self.rear -= 1 #删除一个数据,队列中的数据数量就要减 1 def display_queue(self): print(self.queue) if __name__ == "__main__": queue = Queue(6) queue.en_queue(0) queue.en_queue(1) queue.en_queue(2) queue.en_queue(3) queue.en_queue(4) queue.en_queue(5) queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() queue.de_queue() queue.display_queue() #队列中共有 6 个数据,删除 7 个数据,所以会提示queue is empty!
执行结果:
加载全部内容