姓名:張鈺 學(xué)號:21011210154 學(xué)院:通信工程學(xué)院
【嵌牛導(dǎo)讀】隊列是先入先出的數(shù)據(jù)結(jié)構(gòu),本文將首先介紹先入先出(FIFO)及其在隊列中的工作方式登刺,并能夠自己實現(xiàn)隊列嗡呼。
【嵌牛鼻子】先入先出
【嵌牛提問】隊列如何來實現(xiàn)
【嵌牛正文】
隊列是典型的先入先出數(shù)據(jù)結(jié)構(gòu)纸俭,在先入先出的數(shù)據(jù)結(jié)構(gòu)中南窗,首先處理添加到隊列中的第一個元素廊宪。如下圖所示女轿,插入insert操作也稱作入隊enqueue,新元素始終被添加在隊列的末尾蛉迹。 刪除delete操作也被稱為出隊dequeue,出隊時要移除第一個元素荐操。
image
為了實現(xiàn)隊列珍策,我們可以使用動態(tài)數(shù)組和指向隊列頭部的索引。如上所述攘宙,隊列應(yīng)支持兩種操作:入隊和出隊。入隊會向隊列追加一個新元素蹭劈,而出隊會刪除第一個元素。 所以我們需要一個索引來指出起點多矮。
python實現(xiàn)隊列:
class Queue():
def __init__(self):
self.list = []
def enqueue(self, item):
self.list.append(item) # 向隊列中添加元素:進(jìn)隊
def dequeue(self):
# 刪除隊列元素:出隊
if self.list:
return self.list.pop(0)
else:
return None
def is_empty(self):
return self.list == [] # 判斷隊列是否為空
def size(self):
return len(self.list) # 查詢隊列長度