用NodeJs實現優先順序佇列PQueue

2022-07-20 02:30:16 字數 1267 閱讀 9763

優先順序佇列(priorityqueue)是個很有用的資料結構,很多程式語言都有實現。nodejs是乙個比較新潮的伺服器語言,貌似還沒有提供相關類。這些天有用到優先順序佇列,因為時間很充足,閒來無事,就自己實現了一下。**如下:

/**

* script: pqueue.js

* description: 優先順序佇列類

* authors: [email protected]

* date: 2016-04-19

*/var util = require('util');

/** * 優先順序佇列類

* @param cmp_func 優先順序比較函式,必需,參考陣列排序引數

*/var pqueue = exports.pqueue = function(cmp_func) ;

//堆向上調整

pqueue.prototype._heapupadjust = function(index) else

}records[index] = record;

};//堆向下調整

pqueue.prototype._heapdownadjust = function(index)

var child_record = records[child_index];

if (cmp_func(record, child_record) > 0) else

}records[index] = record;

};//銷毀

pqueue.prototype.destroy = function() ;

//將記錄插入佇列

pqueue.prototype.enqueue = function(record) ;

//刪除並返回隊頭記錄

pqueue.prototype.dequeue = function() else

return record;

};//獲取隊頭記錄

pqueue.prototype.gethead = function() ;

//獲取佇列長度

pqueue.prototype.getlength = function() ;

//判斷佇列是否為空

pqueue.prototype.isempty = function() ;

//清空佇列

pqueue.prototype.clear = function() ;

我覺得,相對於其他排序演算法而言,用堆實現優先順序佇列,入隊時間波動較小,比較平穩。

用堆實現優先順序佇列

申明 要用到堆的基本操作 鏈結為 typedef struct priorityqueue priorityqueue 優先順序佇列初始化 void priorityqueueinit priorityqueue q,compare com 向佇列中插入元素 void priorityqueuepu...

優先順序佇列的實現

優先順序佇列 佇列裡面的所有元素都有相應的權值,元素的刪除順序由這些權值決定。優先順序佇列的實現一般用堆來實現其效率比一般的實現要高。要弄清楚堆我們得先弄清楚下面的定義 一顆大根樹 小根樹 是這樣一棵樹,其中每個節點的值都大於 小於 或等於其子節點 如果有子節點的話 的值。大根堆 乙個大根堆 小根堆...

優先順序佇列(堆實現)

一 優先順序佇列定義 二 方法實現 獲得最大元素方法 去掉最大元素方法 修改優先順序方法 新增節點 三 實現 用堆實現乙個優先順序佇列 主要是新增 修改 刪除節點 節點具有唯一性 author hhf 2014年11月28日 public class priorityqueue 返回優先佇列中優先順...