目錄
- 一、前言
- 二、Queue的基本格式
- 三、入隊(duì)列函數(shù) en_queue
- 四、刪除數(shù)據(jù)函數(shù) de_queue
一、前言
隊(duì)列Queue是一種先進(jìn)先出(FIFO,F(xiàn)irst In First Out)的線(xiàn)性表。允許一端進(jìn)行插入(rear),對(duì)應(yīng)的另一段進(jìn)行刪除(front)。
本篇包含以下內(nèi)容:
(1)Queue的基本格式
(2)入隊(duì)列en_queue
(3)刪除數(shù)據(jù)函數(shù) de_queue
二、Queue的基本格式
class Queue():
def __init__(self,size):
self.size = size
self.front = -1 #設(shè)置front初始值,每出隊(duì)列一個(gè)數(shù)據(jù)就加 1
self.rear = -1 #設(shè)置rear初始值,每入隊(duì)列一個(gè)數(shù)據(jù)就加 1
self.queue = [] #隊(duì)列中數(shù)據(jù)的列表
def display_queue(self): #打印隊(duì)列數(shù)據(jù)
print(self.queue)
if __name__ == "__main__":
queue = Queue(6) #設(shè)置隊(duì)列queue的空間大小
queue.display_queue() #調(diào)用打印函數(shù)
三、入隊(duì)列函數(shù) 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): #當(dāng)入隊(duì)列數(shù)據(jù)數(shù)量大于隊(duì)列的size,提示queue is full!
print("queue is full!")
return
self.queue.append(data) #queue有空間就將數(shù)據(jù)入隊(duì)列
self.rear += 1 #每入隊(duì)列一個(gè)數(shù)據(jù)就加 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,入隊(duì)列數(shù)據(jù)有 7 個(gè),提示queue is full!
queue.display_queue()
執(zhí)行結(jié)果:
![](/d/20211017/59753ea952308ed4ca89b449c0cca9d9.gif)
四、刪除數(shù)據(jù)函數(shù) 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表示隊(duì)列中數(shù)據(jù)的多少,所以當(dāng)它小于0時(shí)說(shuō)明queue中沒(méi)有數(shù)據(jù)
print("queue is empty!")
return
self.front += 1 #當(dāng)queue不為空時(shí),每出隊(duì)列一個(gè)數(shù)據(jù) front就加 1
self.queue.pop(0) #刪除最先進(jìn)來(lái)的數(shù)據(jù)
self.rear -= 1 #刪除一個(gè)數(shù)據(jù),隊(duì)列中的數(shù)據(jù)數(shù)量就要減 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() #隊(duì)列中共有 6 個(gè)數(shù)據(jù),刪除 7 個(gè)數(shù)據(jù),所以會(huì)提示queue is empty!
執(zhí)行結(jié)果:
![](/d/20211017/bccd581a17922f75d73878d9edce4bce.gif)
到此這篇關(guān)于詳解python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue的文章就介紹到這了,更多相關(guān)python隊(duì)列Queue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python機(jī)器學(xué)習(xí)入門(mén)(二)之Python數(shù)據(jù)理解
- 詳解python數(shù)據(jù)結(jié)構(gòu)之棧stack
- python數(shù)據(jù)類(lèi)型相關(guān)知識(shí)擴(kuò)展
- Python數(shù)據(jù)類(lèi)型最全知識(shí)總結(jié)
- python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例
- python入門(mén)課程第四講之內(nèi)置數(shù)據(jù)類(lèi)型有哪些