Ich bin auf der Suche nach einer C-Bibliothek mit gemeinsamen wiederverwendbaren Datenstrukturen wie verknüpfte Listen, Hash-Tabellen usw. So etwas wie die Quelle mit Mastering Algorithms with C (Paperback) by Kyle Loudon verteilt.Gibt es Open-Source-C-Bibliotheken mit gemeinsamen Datenstrukturen?
Antwort
Gnome bietet dafür eine ausgezeichnete Bibliothek namens Glib mit vielen nützlichen Datenstrukturen und anderen Dienstprogrammen.
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
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.
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
Nizza Zeiger - ich würde nie von SGLIB gehört vor . –
Der "Download" -Link für das SGLIB-Projekt ist unterbrochen. Es scheint so, als ob es nicht mehr funktioniert ...:/ –
@ luis.espinal Es kann immer noch heruntergeladen werden von http://freecode.com/projects/sglib – Rob
AT & T software tools.
Die GDSL Bibliothek könnte eine gute Sache sein, zu berücksichtigen:
- 1. Ist es möglich, ein Strategie-Muster für Datenstrukturen ohne gemeinsamen Vorfahren zu verwenden?
- 2. Gibt das SQLite-Ergebnis In-Memory-Datenstrukturen?
- 3. Delphi Datenstrukturen
- 4. Datenstrukturen Frage
- 5. Suchmethoden Datenstrukturen
- 6. Gibt es eine Möglichkeit, einen gemeinsamen Abschnitt mit buildConfigField und resValue in Gradle zu haben?
- 7. Definition von C# Datenstrukturen und Algorithmen
- 8. Lernalgorithmen und Datenstrukturen Grundlagen
- 9. Visual Basic 6 Datenstrukturen
- 10. Datenstrukturen für Bioinformatik
- 11. Trie Datenstrukturen - Java
- 12. Persistente Datenstrukturen in C++
- 13. Verschiedene Datenstrukturen und Komplexitäten
- 14. Anzeige OpenCV IplImage Datenstrukturen mit wxPython
- 15. QT Model/View-Programmierung mit komplizierten Datenstrukturen
- 16. Merge zwei komplexe Datenstrukturen
- 17. Rein funktionale Datenstrukturen mit Copy-on-Write?
- 18. Gibt es einen Namen für diese Sammlung von Datenstrukturen sortierter Arrays?
- 19. Benutzer-einstellbare Datenstrukturen
- 20. Funktionale Datenstrukturen in C++
- 21. Selbstreferentielle Datenstrukturen in Lisp/Scheme
- 22. Dynamische Datenstrukturen in C#
- 23. Datenstrukturen in Golang
- 24. Redis - Umgang mit Änderungen an Datenstrukturen
- 25. Funktionale Datenstrukturen in Java
- 26. Benutzerdefinierte Datenstrukturen in Python
- 27. Golang: Rekursive Datenstrukturen
- 28. Persistente Datenstrukturen in Scala
- 29. Was sind selbstregelnde Datenstrukturen?
- 30. Huffman-Kodierung Algorithmus/Datenstrukturen
Siehe http://stackoverflow.com/questions/649649/any-library-for-generic-datatypes-in-c/649673#649673 – qrdl