2009-03-21 46 views

答えて

35

Gnomeは、便利なデータ構造やその他のユーティリティも含めて、Glibという優れたライブラリを提供しています。

25

gnulib、gnu移植性ライブラリ。

ソースコードとして配布されています。 このリストはmodule listのもので、他にもたくさんのものが含まれています。興味深いのは、「c-stack:スタックオーバーフローの処理で、プログラムが終了する」ということです。

  • リスト
  • 配列リスト
  • CARRAYリスト
  • リンクリスト
  • avltreeリスト
  • rbtreeリスト
  • linkedhashリスト
  • avltreehashリスト
  • rbtreehash-list
  • sublist(シーケンシャルリストのデータ型は別のリストに基づいています。 。)
  • oset(要約順序集合)
  • アレイoset
  • avltree-oset
  • rbtree-oset
48

BSD queue.hを有する:

  • SLIST =単独でリンクされたリストを
  • リスト=二重リンクリスト
  • SIMPLEQ =単独で連結されたキュー
  • はTAILQ =二重リンクキュー

BSD tree.hを有する:

  • RB - 赤黒木
  • SPLAY - スプレー木

参照詳細はqueue(3)およびtree(3)のマニュアルページを参照してください。私は本当に好きです。なぜなら、依存関係のない純粋なCマクロであるからです(libcでさえない)。さらに、BSDライセンスでは、GPLを使用している企業の制限について心配する必要はありません。

15

SGLIBは、優れた汎用データ構造ライブラリです。
ソート配列
リンクリスト
ソートされたリンクリスト
ダブルリンクリスト
赤黒木
ハッシュ化されたコンテナ
それは口が達者よりも速く、非常に高速です

:ライブラリは現在のための汎用的な実装を提供します。標準テンプレートライブラリに触発されています。 Download Here

もう1つの解決策はAttractive Chaos softwareです。 Cマクロライブラリ:
kbtree.h:高速かつ軽量ハッシュテーブルライブラリC.における
kvec.h:C.における単純なベクトルコンテナ


khash.h C.における効率的なBツリーライブラリ

Sglibと魅力的なカオスソフトウェアはCマクロライブラリです。 void *を使用してC言語で汎用コンテナを実装すると、効率が悪くなる可能性があります。 CマクロはC++テンプレートと似ており、C++テンプレートと同じくらい効率的です。

+0

ニースのポインタを参照してください - 私は前にSGLIBのことを聞いたことがなかったです。 –

+0

SGLIBプロジェクトの「ダウンロード」リンクが壊れています。/ –

+0

@ luis.espinalそれはまだhttp://freecode.com/projects/sglibからダウンロードすることができます – Rob

2

Apacheのポータブルランタイム。

+3

ここにあります:https://apr.apache.org/ – n8gray

0
+0

これはaを指します図書館がhttp://code.google.com/p/clibutils/に移動したと言っているページ。 – stakx

+0

そして、それは次のように見えます:https://github.com/davinash/cstlそれは2012年以来更新されていません。 – domen

関連する問題