Стандартная структура данных библиотеки в C? - PullRequest
16 голосов
/ 30 ноября 2009

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

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

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

Ответы [ 5 ]

15 голосов
/ 30 ноября 2009

Glib

Скачать Glib для Windows здесь

10 голосов
/ 30 ноября 2009
  • GDSL . Согласно документам, это чистый ANSI C и должен работать с Visual C ++.
  • C-родовая библиотека
  • Kompimi . C структура данных библиотеки, с акцентом на коллекции. Поставляется с файлами проекта Visual Studio.
4 голосов
/ 29 марта 2014

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

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

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

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

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

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

4 голосов
/ 02 декабря 2009

Выезд cbase . Это LGPL (большинство других библиотек - GPL), если вас беспокоит лицензия.

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

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

3 голосов
/ 01 октября 2010

Возможно, вы захотите взглянуть на http://www.liblfds.org/

...