優先度キュー、任意のキーのマップ、試行、グラフなどの基本的なデータ構造の実装と、それらを操作するいくつかのアルゴリズムを提供するJavaScriptライブラリの推奨をお願いします。
私は主に興味があります:
JavaScriptを使用して次のデータ構造を実装することが可能であることを認識していることを指摘しておきます。
現時点で私が最も関心を持っているのは、優先キュー(通常のキューと混同しないようにする)、入力グラフの形式に関してそれほど煩わしくないグラフ実装です。たとえば、固定名を持ついくつかの具象プロパティにアクセスするのではなく、コールバックを使用してグラフの構造をトラバースできます。
私はクロージャー・ライブラリーを使用することをお勧めします(特にクロージャー・コンパイラーで)。
ここに、データ構造 goog.structs のライブラリがあります。ライブラリには以下が含まれます:
goog.structs.AvlTree
goog.structs.CircularBuffer
goog.structs.Heap
goog.structs.InversionMap
goog.structs.LinkedMap
goog.structs.Map
goog.structs.PriorityQueue
goog.structs.Set
例として、ユニットテストを使用できます: goog.structs.PriorityQueueTest 。
配列で作業する必要がある場合は、配列lib: goog.array もあります。
コメントに記載されているように、ソースは github.com/google/closure に移動し、ドキュメントの新しい場所は google.github.io/closure-library です。
試すことができます Buckets は、以下を含む非常に完全なJavaScriptデータ構造ライブラリです。
任意のキーを使用してマップを支援できます。my jshashtable がこれを実行し、その上に構築されたハッシュセットの実装もあります。
おそらく、欲しいもののほとんどは何らかの方法でJavaScriptに組み込まれているか、組み込み機能と組み合わせるのが簡単です(ネイティブJavascriptデータ構造は非常に柔軟です)。あなたは JSClass が好きかもしれません。
言語の機能的な特徴については、 nderscore.js がどこにあるかです。
特にグラフのような構造の場合、graphlibは非常に便利です。
https://github.com/cpettitt/graphlib/wiki/API-Reference
これは非常に単純明快で、私が試した他の実装よりも高速で、基本的な機能、一般的なグラフアルゴリズム、JSONデータエクスポートをすべて備えています。
あなたのjavascriptはアプリケーションですか、それともウェブページですか?アプリケーションの場合は、データ構造を Redis に外部委託しないのはなぜですか? nodejsのクライアント があります
Redisは、オープンソースの高度なKey-Valueストアです。キーには文字列、ハッシュ、リスト、セット、ソート済みセットを含めることができるため、データ構造サーバーと呼ばれることがよくあります。
このスレッドへの訪問者の将来の参照のために、優先キュー、トライ、基本グラフ処理およびその他の実装を提供するカスタムJavaScriptライブラリへのリンクを追加します。チェックアウト dsjslib
data.js 。
あなたが望むほど機能が豊富だとは思わないが、グラフ、ハッシュ、コレクションが含まれている。
私はこれを拡張できる軽量のスタートを切るでしょう。
それが提供するものに関しては、よく書かれ、効率的で、文書化されています。