JS 資料結構,佇列(Queue)

2021-10-08 16:37:27 字數 2087 閱讀 7331

佇列(queue):它是一種 受限的線性表,先進先出(fifo)。受限之處在於,它只能在表的 前端 進行 刪除 操作,在表的 後端 進行 插入 操作。

列印佇列:有五份文件需要列印,這些文件會按照次序放入到列印佇列中,列印會依次從佇列中取出文件,優先放入的文件,優先被取出,並且對該文件進行列印,以此類推,直到佇列中不再有新的文件。

執行緒佇列:在開發中,為了讓任務可以並行處理,通常會開啟多個執行緒。但是,我們不能讓大量的執行緒同時執行處理任務,占用資源太多。這個時候,如果有需要開啟執行緒處理的情況,我們就會使用執行緒佇列。執行緒佇列會依次啟動執行緒,並且處理對應任務。(當考慮到執行緒任務的優先性的時候,可以使用優先佇列去完成)

佇列的實現:可以 基於陣列 實現,也可以 基於鍊錶實現(效率更高)。下面先討論以陣列實現的方式,基於鍊錶實現的,後面補充。

// 封裝佇列類

function queue()

// 2,刪除佇列前端元素,並返回

queue.prototype.dequeue = function()

// 3,返回佇列前端元素

queue.prototype.fork = function()

// 4,判斷佇列是否為空

queue.prototype.isempty = function()

// 5.返回佇列的長度

queue.prototype.size = function()

// 6,返回字串形式的佇列內容

queue.prototype.tostring = function()

// 2,佇列前端刪除元素,並返回刪除的元素

queue.prototype.dequeue = function()

// 3,返回佇列前端元素,佇列不做任何變化

queue.prototype.fork = function()

// 4,判斷佇列是否為空

queue.prototype.isempty = function()

// 5,返回佇列的長度

queue.prototype.size = function()

// 6,以字串的形式返回佇列的內容

queue.prototype.tostring = function()

// 封裝屬性

this.items = ;

// 方法

// 1,佇列後端插入元素

priorityqueue.prototype.enqueue = function(element,priority)else

}// 佇列不為空,沒有找到大於它優先順序的元素,插入到隊尾

if(!added)

}} // 2,佇列前端刪除元素

priorityqueue.prototype.dequeue = function()

// 3,返回佇列前端元素,不改變佇列

priorityqueue.prototype.fork = function()

// 4,判斷佇列是否為空

priorityqueue.prototype.isempty = function()

// 5,返回佇列的長度

priorityqueue.prototype.size = function()

// 6,以字串形式返回佇列內容

priorityqueue.prototype.tostring = function()

return resultstr;

} }// 優先順序佇列使用

var pq = new priorityqueue();

pq.enqueue('wuhao',110);

pq.enqueue('liming',10);

pq.enqueue('zhouyu',80);

pq.enqueue('huwen',200);

alert(pq.tostring());

js資料結構 佇列 queue

github 佇列遵循先進先出的原則的一種有序的項。enqueue 向佇列尾部新增乙個 或多個 新的項 dequeue 移除佇列的第一 即排在佇列最前面的 項,並返回被移除的元素 front 返回佇列中第乙個元素 最先被新增,也將是最先被移除的元素。佇列不做任何變動 不移除元素,只返回元素資訊 與s...

資料結構 佇列 queue

佇列 就是生活中的排隊,因此排隊是先到先得,也是先離開隊伍,因此佇列也是採用的先進先出的概念 fifo,慢慢想想作業系統裡面是不是也用到fifo,自己去查吧 到底有沒有 如何能夠準確的定位是先進先出呢,因此採用的就是頭指標front和尾指標rear,通常這兩個指標是封裝成乙個鏈隊 注意front與r...

資料結構 佇列 queue

佇列 queue 是一種採用先進先出 fifo 策略的抽象資料結構,它的想法來自於生活中排隊的策略。顧客在付款結賬的時候,按照到來的先後順序排隊結賬,先來的顧客先結賬,後來的顧客後結賬。同棧的實現一樣,佇列的實現也有陣列實現和鍊錶實現兩種方式。先來看看陣列實現的方法。棧使用top變數記錄棧頂的位置,...