Стандартная библиотека структуры данных в C?

Я ищу стандартную проверенную и проверенную библиотеку на языке C (платформа Windows), которая реализует структуры данных, такие как стеки, очереди, деревья и т.д.

Я бы предпочел иметь исходный код вместе с ним. Возможно написание библиотеки самостоятельно; однако я считаю, что может быть лучше выбрать какую-либо стандартную реализацию, которая может быть оптимизирована и менее ошибочной.

Компилятор - это Visual Studio 2005/2008.

Ответ 2

  • GDSL. Согласно документам, это чистый ANSI C и должен работать с Visual С++.
  • C-generic-library
  • Kompimi. C, с акцентом на коллекции. Поставляется с файлами проекта Visual Studio.

Ответ 3

Проверьте cbase. Его LGPL (большинство других библиотек - GPL), если лицензия - это то, что касается вас.

Мое единственное замечание в том, что для этого требуется C99 или GCC. Он использует переменные макросы, которые не совместимы с C89. Он должен компилироваться в соответствии с VC2005/2008.

cbase - это библиотека C полезных функций, упрощающая разработку системного программного обеспечения в System V UNIX. Библиотека включает в себя подпрограммы для управления памятью, синтаксического анализа строк, обхода файловой системы, выполнения подпроцесса, ввода-вывода, а также реализации общих структур данных, таких как связанные списки, хеш-таблицы, стеки и очереди. Библиотека также включает в себя высокоуровневый интерфейс для сокетов Berkeley и реализацию планировщика, который имеет функциональность, очень похожую на функциональность демона cron. Примечание: cbase ранее называлась CFL.

Ответ 4

Вы проверили qLibc? Это реализация C с открытым исходным кодом, которая предоставляет различные типы данных, такие как хеш-таблица, связанный список, очередь, стек...

На сегодняшний день с его веб-сайта я вижу, что он имеет следующий набор функций:

  • Контейнеры
    • Список --- Двуединый список.
    • Таблица списков --- парная таблица KEY/VALUE реализована в связанном списке.
    • Таблица хэшей --- таблица парных ключей KEY/VALUE на основе хэш-функции.
    • Статическая таблица хэшей --- статическая (массив/mmapped/shared) память на основе KEY/VALUE. Таблица
    • Вектор --- реализует растущий массив элементов.
    • Queue --- FIFO (First In First Out).
    • Реализация Stack --- LIFO (Last In First Out).
  • Общие утилиты.
    • Строка
    • I/O
    • Файл
    • IPC, семафорная общая память
    • En/декодеры
    • Хэш
    • Система
    • Время
  • Расширения
    • Паттерн файла конфигурации в стиле INI.
    • Пакет параметров файла конфигурации в стиле Apache.
    • Вращающийся регистратор файлов.
    • HTTP-клиент.
    • Интерфейс базы данных (MySQL).

В каждой реализации контейнера он четко объясняет внутреннюю структуру данных в верхней части кода. Поэтому было бы полезно поймать идеи реализации.

Код можно найти на https://github.com/wolkykim/qlibc

Надеюсь, это поможет. (Пожалуйста, проголосуйте, если это поможет, мне нужны некоторые очки. Спасибо:)