詳解python數(shù)據(jù)結(jié)構(gòu)之隊列Queue
一、前言
隊列Queue是一種先進先出(FIFO,F(xiàn)irst In First Out)的線性表。允許一端進行插入(rear),對應(yīng)的另一段進行刪除(front)。
本篇包含以下內(nèi)容:
(1)Queue的基本格式
(2)入隊列en_queue
(3)刪除數(shù)據(jù)函數(shù) de_queue
二、Queue的基本格式
class Queue():
def __init__(self,size):
self.size = size
self.front = -1 #設(shè)置front初始值,每出隊列一個數(shù)據(jù)就加 1
self.rear = -1 #設(shè)置rear初始值,每入隊列一個數(shù)據(jù)就加 1
self.queue = [] #隊列中數(shù)據(jù)的列表
def display_queue(self): #打印隊列數(shù)據(jù)
print(self.queue)
if __name__ == "__main__":
queue = Queue(6) #設(shè)置隊列queue的空間大小
queue.display_queue() #調(diào)用打印函數(shù)
三、入隊列函數(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): #當入隊列數(shù)據(jù)數(shù)量大于隊列的size,提示queue is full!
print("queue is full!")
return
self.queue.append(data) #queue有空間就將數(shù)據(jù)入隊列
self.rear += 1 #每入隊列一個數(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,入隊列數(shù)據(jù)有 7 個,提示queue is full!
queue.display_queue()
執(zhí)行結(jié)果:

四、刪除數(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表示隊列中數(shù)據(jù)的多少,所以當它小于0時說明queue中沒有數(shù)據(jù)
print("queue is empty!")
return
self.front += 1 #當queue不為空時,每出隊列一個數(shù)據(jù) front就加 1
self.queue.pop(0) #刪除最先進來的數(shù)據(jù)
self.rear -= 1 #刪除一個數(shù)據(jù),隊列中的數(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() #隊列中共有 6 個數(shù)據(jù),刪除 7 個數(shù)據(jù),所以會提示queue is empty!
執(zhí)行結(jié)果:

到此這篇關(guān)于詳解python數(shù)據(jù)結(jié)構(gòu)之隊列Queue的文章就介紹到這了,更多相關(guān)python隊列Queue內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3+PyQt5實現(xiàn)支持多線程的頁面索引器應(yīng)用程序
這篇文章主要為大家詳細介紹了python3+PyQt5實現(xiàn)支持多線程的頁面索引器應(yīng)用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
安裝pycurl報錯Could not run curl-config: &ap
這篇文章主要為大家介紹了安裝pycurl報錯Could not run curl-config: 'curl-config'解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
詳解pytest分布式執(zhí)行插件?pytest-xdist?的高級用法
這篇文章主要介紹了pytest分布式執(zhí)行插件?pytest-xdist?的高級用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08
Python實現(xiàn)生成多種有規(guī)律的數(shù)字序列
在?Python?編程中,生成數(shù)字序列是一項常見且重要的任務(wù),本文將深入探討如何使用Python中的內(nèi)置函數(shù)、列表推導式、生成器等方式來生成多種有規(guī)律的數(shù)字序列,需要的可以參考下2024-03-03
python實現(xiàn)將Excel文件轉(zhuǎn)換為JSON文件
在數(shù)據(jù)處理和分析中,Excel和JSON是兩種常見的數(shù)據(jù)格式,本文將詳細介紹如何使用Python將Excel文件轉(zhuǎn)換為JSON文件,我們將使用pandas庫,這是一個強大的數(shù)據(jù)分析工具,能夠方便地讀取和處理各種數(shù)據(jù)格式,需要的朋友可以參考下2024-07-07
pytorch+torchvision+python版本對應(yīng)及環(huán)境安裝
本文主要介紹了pytorch+torchvision+python版本對應(yīng)及環(huán)境安裝,安裝過程中需要注意Numpy版本的降級,以確保與PyTorch兼容,具有一定的參考價值,感興趣的可以了解一下2025-03-03
python內(nèi)置函數(shù)之eval函數(shù)詳解
這篇文章主要為大家介紹了python內(nèi)置函數(shù)之eval函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01

