Gibt es Open Source C-Bibliotheken mit gemeinsamen Datenstrukturen? [geschlossen]


111

Ich suche eine C-Bibliothek mit gängigen wiederverwendbaren Datenstrukturen wie verknüpften Listen, Hash-Tabellen usw. So etwas wie die Quelle, die Kyle Loudon mit Mastering-Algorithmen mit C (Taschenbuch) verteilt hat .


Andere Websites sind besser für diese Art von Fragen geeignet slant.co/improve/topics/19233
ideasman42

Antworten:


57

BSD queue.h hat:

  • SLIST = einfach verknüpfte Liste
  • LIST = doppelt verknüpfte Liste
  • SIMPLEQ = einfach verknüpfte Warteschlange
  • TAILQ = doppelt verknüpfte Warteschlange

BSD tree.h hat:

  • RB - rot-schwarzer Baum
  • SPLAY - Spreizbaum

Weitere Informationen finden Sie in den Manpages zu Warteschlange (3) und Baum (3) . Ich mag sie wirklich, weil sie reine C-Makros ohne Abhängigkeiten sind (nicht einmal libc). Mit der BSD-Lizenz müssen Sie sich außerdem keine Gedanken über Unternehmensbeschränkungen mit GPL machen.


36

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


30

gnulib , die Gnu-Portabilitätsbibliothek.

Es wird als Quellcode verteilt. Diese Liste stammt aus der Modulliste , die eine TONNE anderer Dinge enthält. Ein interessantes ist "c-stack: Stapelüberlaufbehandlung, die zum Beenden des Programms führt."

  • aufführen
  • Anordnungsliste
  • Carray-Liste
  • verknüpfte Liste
  • avltree-Liste
  • rbtree-Liste
  • Linkedhash-Liste
  • avltreehash-Liste
  • rbtreehash-Liste
  • Unterliste (Datentyp der sequentiellen Liste, der von einer anderen Liste unterstützt wird.)
  • oset (Abstract geordneter Satz.)
  • Array-Oset
  • avltree-oset
  • rbtree-oset

Beachten Sie, dass diese Option GPL-lizenziert ist und daher nur in GPL-lizenzierter Software legal verwendet werden kann.
Noah Andrews

19

SGLIB ist eine ausgezeichnete generische Datenstrukturbibliothek. Die Bibliothek bietet derzeit generische Implementierungen für:
Sortieren von Arrays
Verknüpfte Listen
Sortierte verknüpfte Listen
Doppelte verknüpfte Listen
Rot-Schwarz-Bäume-
Hash-Container

Es ist sehr schnell, schneller als glib. Es ist von der Standardvorlagenbibliothek inspiriert. Hier herunterladen

Eine andere Lösung ist die Attraktive Chaos-Software . C-
Makrobibliothek : kbtree.h: Effiziente B-Baum-Bibliothek in C.
khash.h: Schnelle und leichte Hash-Tabellenbibliothek in C.
kvec.h: Einfacher Vektorcontainer in C.

Sglib und Attractive Chaos Software sind C-Makrobibliothek. Die Verwendung von void * zum Implementieren generischer Container in C kann ineffizient sein. C-Makros ahmen die C ++ - Vorlage nach und sind genauso effizient wie die C ++ - Vorlage


Nette Hinweise - ich hatte noch nie von SGLIB gehört.
Michael Burr

Der "Download" -Link für das SGLIB-Projekt ist defekt. Scheint nicht mehr zu
funktionieren

@ luis.espinal Es kann immer noch von freecode.com/projects/sglib
Rob

Scheint, dass diese beiden Bibliotheken AWOL geworden sind.
Michael Foukarakis




Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.