Хеш-библиотеки для программистов на C

На этой странице представлен список библиотек, которые помогут вам в программировании на C. Библиотеки здесь имеют открытый исходный код и используются для того, чтобы помочь вам хранить данные, не прибегая к собственному связанному списку и т. Д. Структурам данных.

Разработано Трой Д. Hanson, любая структура C может быть сохранена в хеш-таблице с помощью uthash. Просто включите #include «uthash.h», затем добавьте UT_hash_handle в структуру и выберите одно или несколько полей в вашей структуре, которые будут действовать в качестве ключа. Затем используйте HASH_ADD_INT, HASH_FIND_INT и макросы для хранения, извлечения или удаления элементов из хеш-таблицы. Он использует int, строковые и двоичные ключи.

Джуди библиотека C, которая реализует разреженный динамический массив Джуди массивы объявлены просто с нулем указатель и потреблять память только при заселении. При желании они могут использовать всю доступную память. Основными преимуществами Джуди являются масштабируемость, высокая производительность и эффективность использования памяти. Он может быть использован для динамически изменяемых массивов, ассоциативных массивов или простого в использовании интерфейса, который не требует переделок для расширения или сжатия и может заменить многие общие структуры данных, такие как массивы, разреженные массивы, хеш-таблицы, B-деревья, двоичные деревья, линейные списки, скиплисты, другие алгоритмы сортировки и поиска, а также подсчет функции.

instagram viewer

SGLIB сокращенно от Simple Generic Library и состоит из одного заголовочного файла sglib.h, который обеспечивает общую реализацию наиболее распространенных алгоритмов для массивов, списков, отсортированных списков и красно-черных деревьев. Библиотека является общей и не определяет свои собственные структуры данных. Скорее он действует на существующие пользовательские структуры данных через универсальный интерфейс. Он также не выделяет и не освобождает какую-либо память и не зависит от какого-либо конкретного управления памятью.

Все алгоритмы реализованы в виде макросов, параметризованных по типу структуры данных и функции компаратора (или макроса компаратора). Для некоторых алгоритмов и структур данных может потребоваться несколько дополнительных общих параметров, таких как имя поля «next» для связанных списков.

instagram story viewer