Я ищу библиотеку C с обычными многократно используемыми структурами данных, такими как связанные списки, хэш-таблицы и т.д. Что-то вроде источника, распределенного с Освоение алгоритмов с помощью C ( Мягкая обложка) Кайла Лаудона.
Существуют ли библиотеки с открытым кодом C с общими структурами данных?
Ответ 1
BSD queue.h имеет:
- SLIST = отдельный список
- LIST = дважды связанный список
- SIMPLEQ = одиночно связанная очередь
- TAILQ = дважды связанная очередь
BSD tree.h имеет:
- RB - красно-черное дерево
- SPLAY - дерево splay
Смотрите очередь (3) и tree (3) man pages для деталей. Мне они очень нравятся, потому что они являются чистыми макросами C без зависимостей (даже не libc). Кроме того, с лицензией BSD вам не нужно беспокоиться о каких-либо ограничениях компании w/GPL.
Ответ 2
Gnome предоставляет отличную библиотеку для этого, называемую Glib, с множеством полезных структур данных и других утилит.
Ответ 3
gnulib, библиотека переносимости gnu.
Он распространяется как исходный код. Этот список представлен в его списке модулей, который включает в себя TON других вещей. Одним из интересных является "c-stack: обработка, вызывающая выход программы".
- список
- массив-список
- CARRAY-лист
- связного списка
- avltree-лист
- rbtree-лист
- linkedhash-лист
- avltreehash-лист
- rbtreehash-лист
- sublist (Тип данных последовательного списка, поддерживаемый другим списком.)
- oset (Абстрактный упорядоченный набор.)
- массив OSET
- avltree-OSET
- rbtree-OSET
Ответ 4
SGLIB - отличная общая библиотека структур данных. В настоящее время библиотека предоставляет общие реализации для:
сортировочные массивы
связанные списки
отсортированные связанные списки
двойные связанные списки
красно-черные деревья
хешированные контейнеры
Это очень быстро, быстрее glib. Он вдохновлен стандартной библиотекой шаблонов. Загрузить здесь
Другим решением является Привлекательное программное обеспечение хаоса.
Библиотека макросов C:
kbtree.h: эффективная библиотека B-дерева в C.
khash.h: быстрая и легкая хэш-таблица библиотеки в C.
kvec.h: простой векторный контейнер в C.
Программное обеспечение Sglib и Attractive Chaos - это библиотека макросов C. Использование void * для реализации общих контейнеров в C может быть неэффективным. C макросов имитирует шаблон С++ и эффективен как шаблон С++
Ответ 5
В библиотеке GDSL можно подумать:
Ответ 6
Время автономной работы Apache.
Ответ 7
Ответ 8
AT & T программные средства.