Closed hirosejn closed 7 years ago
/** * Heap * * @class * @name Heap * @memberof HJN.util * @classdesc ヒープ(二分ヒープ) * <p>最小値(最大値)を効率よく取り出すことができるデータ構造 * <p>参考 {@link http://d.hatena.ne.jp/otaks/20121220/1355993039} * @param {func} * [func=function(obj){ return +obj; }] * pushで登録するオブジェクトからヒープの大小比較判定値を取り出す関数 * @example h = HJN.util.Heap( function(obj){ return +obj; } ) * h.push("12.34") // データを登録する * h.push(0.12) // * h.pop() // => 0.12 最小値のオブジェクトを取り出す * h.pop() // => "12.34" * h.top() // =>undefined 最小値のオブジェクト * h.size() // =>0 登録オブジェクト数 */ HJN.util.Heap = (function() { // #55
参考 プライオリティキュー
二分木とHeapのサンプル(パイソン)
参考 プライオリティキュー