情報アイランド

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

Node.jsで優先度付きキューを使用する

優先度付きキューを使用するにはBucketsパッケージのbuckets-jsモジュールのPriorityQueueクラスを使用します。

このクラスは優先度付きキューの実装であり、下のような関数を提供します。

  • add・・・要素を追加します。第1引数に追加する要素を指定します。
  • clear・・・全ての要素を削除します。
  • contains・・・要素が含まれているか調べます。第1引数に要素を指定します。
  • dequeue・・・最も優先度が高い要素を取得し、削除します。
  • enqueue・・・要素を追加します。第1引数に追加する要素を指定します。
  • equals・・・別の優先度付きキューと内容が同一であるか調べます。第1引数に優先度付きキューを指定します。
  • forEach・・・それぞれの要素に対して処理を行います。第1引数に実行する処理を関数として指定します。
  • isEmpty・・・空の優先度付きキューであるか調べます。
  • peek・・・最も優先度が高い要素を取得します。
  • size・・・要素の数を取得します。
  • toArray・・・全ての要素から成る配列を取得します。

サンプルコード1

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

buckets-js-priority-queue.js

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

var p = new bucketsJs.PriorityQueue();

print(p);

p.enqueue(0);
p.enqueue(1);
p.enqueue(2);
p.enqueue(3);

print(p);

console.log(p.isEmpty());

console.log(p.size());

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

console.log(p.peek());
console.log(p.peek());

console.log(p.dequeue());
console.log(p.dequeue());

print(p);

p.clear();

print(p);

console.log(p.isEmpty());

console.log(p.size());

console.log(p.peek());

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

使用パッケージ

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

実行結果

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

関連

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

-Node.js