情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsで二分ヒープを使用する

二分ヒープを使用するにはBucketsパッケージのbuckets-jsモジュールのHeapクラスを使用します。

このクラスは二分ヒープの実装であり、下のような関数を提供します。

  • add・・・要素を追加します。第1引数に追加する要素を指定します。
  • clear・・・全ての要素を削除します。
  • contains・・・要素が含まれているか調べます。第1引数に要素を指定します。
  • equals・・・別の二分ヒープと内容が同一であるか調べます。第1引数に二分ヒープを指定します。
  • forEach・・・それぞれの要素に対して処理を行います。第1引数に実行する処理を関数として指定します。
  • isEmpty・・・空の二分ヒープであるか調べます。
  • peek・・・ルートの要素を取得します。
  • removeRoot・・・ルートの要素を取得し、削除します。
  • size・・・要素の数を取得します。
  • toArray・・・全ての要素から成る配列を取得します。

サンプルコード1

Heapクラスの関数の使用例です。

buckets-js-heap.js

var bucketsJs = require('buckets-js');

var h = new bucketsJs.Heap();

print(h);

h.add(0);
h.add(1);
h.add(2);
h.add(3);

print(h);

console.log(h.isEmpty());

console.log(h.size());

console.log(h.contains(0));
console.log(h.contains(10));

console.log(h.peek());
console.log(h.removeRoot());
console.log(h.peek());

print(h);

h.clear();

print(h);

console.log(h.isEmpty());

console.log(h.size());

function print(h) {
    h.forEach(function (e) {
        console.log(e);
    });
}

使用パッケージ

  • Buckets
    npm install buckets-jsでインストールします。

実行結果

C:\work\node>node buckets-js-heap.js
0
1
2
3
false
4
true
false
0
0
1
1
3
2
true
0

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js