Computerwissenschaften

Hash-Bibliotheken für C-Programmierer

Diese Seite listet eine Sammlung von Bibliotheken auf, die Ihnen beim Programmieren in C helfen. Die Bibliotheken hier sind Open Source und werden zum Speichern von Daten verwendet, ohne dass Sie Ihre eigenen Datenstrukturen für verknüpfte Listen usw. erstellen müssen.

 

Uthash

Jede von Troy D. Hanson entwickelte C-Struktur kann mit Uthash in einer Hash-Tabelle gespeichert werden. Fügen Sie einfach #include „uthash.h“ hinzu, fügen Sie der Struktur ein UT_hash_handle hinzu und wählen Sie ein oder mehrere Felder in Ihrer Struktur aus, die als Schlüssel dienen sollen. Verwenden Sie dann HASH_ADD_INT, HASH_FIND_INT und Makros, um Elemente in der Hash-Tabelle zu speichern, abzurufen oder zu löschen. Es werden Int-, String- und Binärschlüssel verwendet.

 

Judy

Judy ist eine C-Bibliothek, die ein spärliches dynamisches Array implementiert. Judy Arrays deklariert einfach mit einem Null – Zeiger und verbrauchen Speicher nur dann , wenn bevölkert. Auf Wunsch können sie wachsen, um den gesamten verfügbaren Speicher zu nutzen. Die Hauptvorteile von Judy sind Skalierbarkeit, hohe Leistung und Speichereffizienz. Es kann für Arrays mit dynamischer Größe, assoziative Arrays oder eine einfach zu verwendende Schnittstelle verwendet werden, die keine Nacharbeit für Expansion oder Kontraktion erfordert und viele gängige Datenstrukturen wie Arrays, Sparse-Arrays, Hash-Tabellen, B-Bäume und Binärdateien ersetzen kann Bäume, lineare Listen, Skiplisten, andere Sortier- und Suchalgorithmen und Zählfunktionen.

 

SGLIB

SGLIB ist die Abkürzung für Simple Generic Library und besteht aus einer einzelnen Header-Datei sglib.h, die eine generische Implementierung der gängigsten Algorithmen für Arrays, Listen, sortierte Listen und rot-schwarze Bäume bietet. Die Bibliothek ist generisch und definiert keine eigenen Datenstrukturen. Vielmehr wirkt es über eine generische Schnittstelle auf vorhandene benutzerdefinierte Datenstrukturen ein. Es reserviert oder gibt auch keinen Speicher frei und hängt nicht von einer bestimmten Speicherverwaltung ab.

Alle Algorithmen sind in Form von Makros implementiert, die durch die Art der Datenstruktur und die Komparatorfunktion (oder das Komparatormakro) parametrisiert sind. Für einige Algorithmen und Datenstrukturen sind möglicherweise mehrere weitere generische Parameter erforderlich, z. B. der Name des Felds „Weiter“ für verknüpfte Listen.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.