2009-03-21 8 views

Antwort

35

Gnome bietet dafür eine ausgezeichnete Bibliothek namens Glib mit vielen nützlichen Datenstrukturen und anderen Dienstprogrammen.

25

gnulib, die Gnu Portabilität Bibliothek.

Es ist als Quellcode verteilt. Diese Liste ist von seiner module list, die eine TON anderer Dinge enthält. Eine interessante Sache ist "c-stack: Stack-Überlauf-Behandlung, was Programm-Exit verursacht."

  • Liste
  • array-Liste
  • CArray Liste
  • verketteten Liste
  • AVLTree Liste
  • rbtree Liste
  • linkedhash Liste
  • avltreehash-Liste
  • rbtreeshash-Liste
  • Unterliste (Sequenzieller Listdatentyp, der von einer anderen Liste unterstützt wird.)
  • oset (Abstract sortiertes Set)
  • array-oset
  • AVLTree-oset
  • rbtree-oset
48

BSD queue.h hat.

  • SLIST einfach verkettete Liste =
  • LISTE = doppelt verkettete Liste
  • SIMPLEQ = einzeln Warteschlange verknüpft
  • TAILQ = doppelt verknüpfte Warteschlange

BSD tree.h hat:

  • RB - rot-schwarzen Baum
  • SPLAY - splay tree

See die Manpages queue(3) und tree(3) für Details. Ich mag sie wirklich, weil sie reine C-Makros ohne Abhängigkeiten sind (nicht einmal libc). Mit der BSD-Lizenz müssen Sie sich auch nicht um irgendwelche Unternehmensbeschränkungen mit GPL kümmern.

15

SGLIB ist eine ausgezeichnete generische Datenstrukturbibliothek.Die Bibliothek bietet derzeit generische Implementierungen für:
Sortier Arrays
verkettete Listen
sortiert verkettete Listen
doppelt verkettete Listen
rot-schwarz Bäume
gehasht Behälter

Es ist sehr schnell, schneller als glib. Es ist von der Standardvorlagenbibliothek inspiriert. Eine andere Lösung ist Attractive Chaos software. C Makro-Bibliothek:
kbtree.h: effizient B-Baum-Bibliothek in C.
khash.h: schnell und leichtgewichtig Hashtabelle Bibliothek in C.
kvec.h: einfache Behälter Vektor in C.

Sglib und Attraktive Chaos-Software sind C-Makros-Bibliothek. Die Verwendung von void * zur Implementierung generischer Container in C ist möglicherweise ineffizient. C-Makros imitieren C++ - Vorlage und sind so effizient wie C++ - Vorlage

+0

Nizza Zeiger - ich würde nie von SGLIB gehört vor . –

+0

Der "Download" -Link für das SGLIB-Projekt ist unterbrochen. Es scheint so, als ob es nicht mehr funktioniert ...:/ –

+0

@ luis.espinal Es kann immer noch heruntergeladen werden von http://freecode.com/projects/sglib – Rob

2

Der Apache Portable Runtime.

+3

Gefunden hier: https://apr.apache.org/ – n8gray

0
+0

Dies deutet auf a Seite, die besagt, dass die Bibliothek nach http://code.google.com/p/clibutils/ verschoben wurde. – stakx

+0

Und jetzt scheint es zu sein: https://github.com/davinash/cstl Es wurde seit 2012 jedoch nicht aktualisiert. – domen