iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
Software Development

資料結構與演算法,使用JavaScript與Python系列 第 7

【Day7】[資料結構]-佇列Queue

佇列(Queue)是一種排列結構,雖然與堆疊類似,但佇列在新增與刪除資料必須在不同端進行,前端(front)能夠刪除(dequeue)查看(peek)資料,尾端(Rear)只能新增(enqueue)資料,因此有「先進先出」(First In First Out)特性,縮寫為FIFO。

可以想像在搶購商品排隊時,最先到的可以先購買到商品並離開。

在電腦領域中有很多使用佇列的應用,像是CPU的工作排程,印表機的工作排序,網路伺服器傳輸...等。


Enqueue的情況

https://ithelp.ithome.com.tw/upload/images/20210917/20121027OU2QKm6j55.jpg

Dequeue的情況

https://ithelp.ithome.com.tw/upload/images/20210917/201210276YJ4rjLvqG.jpg


優先佇列(Priority Queue)

具有優先權的資料可以插隊先處理,不需符合FIFO特性,例如:VIP會員可以優先進場、救護車急救時可以優先通過其他車輛。
https://ithelp.ithome.com.tw/upload/images/20210917/20121027pby96mnsgY.jpg


常見製作佇列的方式

  • 使用陣列(Array)製作佇列
    https://ithelp.ithome.com.tw/upload/images/20210917/20121027SYFpVnHTAX.jpg

陣列的介紹可以參考此篇

  • 使用鏈結串列(Linked List)製作佇列
    https://ithelp.ithome.com.tw/upload/images/20210917/20121027LYXCzozCvG.jpg

鏈結串列的介紹可以參考此篇


上一篇
【Day6】[資料結構]-堆疊Stack-實作
下一篇
【Day8】[資料結構]-佇列Queue-實作
系列文
資料結構與演算法,使用JavaScript與Python35

尚未有邦友留言

立即登入留言