Class: Heap

Heap

Heap ヒープ(二分ヒープ)

最小値(最大値)を効率よく取り出すことができるデータ構造

参考 http://d.hatena.ne.jp/otaks/20121220/1355993039

Constructor

src/util/util-Heap.js, line 1

new Heap(funcopt, delFuncopt)

Parameters:
  • func function <optional> function(obj){ return +obj; }
    pushで登録するオブジェクトからヒープの大小比較判定値を取り出す関数
  • delFunc function <optional> function(obj){ return obj; }
    削除対象ノードを特定する関数
    「delの引数オブジェクト === delFunc(heapのノードのオブジェクト)」 で判定する
Example
h = HJN_util.Heap( function(obj){ return +obj; } );<br>
         h.push("12.34") // データを登録する ;<br>
         h.push(0.12) // ;<br>
         h.pop() // => 0.12 最小値のオブジェクトを取り出す ;<br>
         h.pop() // => "12.34" ;<br>
         h.top() // =>undefined 最小値のオブジェクト ;<br>
         h.size() // =>0 登録オブジェクト数

Methods

src/util/util-Heap.js, line 173

(static) Heap#del(obj) → {Object|undefined}

指定データを削除する
Parameters:
  • obj Object
    削除対象と同一オブジェクト(=== で判定)
Returns:
  • Object | undefined
    削除したオブジェクト(undefined:合致するオブジェクトが無いとき)
src/util/util-Heap.js, line 153

(static) Heap#pop() → {Object|undefined}

最小値のデータを取り出す
Returns:
  • Object | undefined
    最小値
src/util/util-Heap.js, line 139

(static) Heap#push(obj)

データを追加する
Parameters:
  • obj Object
    登録オブジェクト
src/util/util-Heap.js, line 206

(static) Heap#size() → {Number}

ヒープのサイズを返却する
Returns:
  • Number
    ヒープサイズ(0以上)
src/util/util-Heap.js, line 197

(static) Heap#top() → {Object|undefined}

最小値を返却する(登録データは変更しない)
Returns:
  • Object | undefined
    最小値