Списки и деревья в Си

  • Списки можно сделать руками, но лучше взять что-то готовое, скажем из queue.h из BSD, где есть списки всех цветов и фасонов.
  • Ассоциативные массивы можно тоже сделать руками, но лучше взять красно-черные деревья (например из tree.h из BSD), упорядоченные по значению ключа.
  • Если вам нужен отсортированные списки, то вам опять же пригодятся красно-черные деревья.
  • Оба файла (queue.h и tree.h) лучше просто таскать с собою в проекте, поскольку там только макросы (ничего удобного, кроме макросов, в Си и не предусмотрено).
  • Архив с примерами использования списков и упорядоченных красно-черных деревьев. Пример использует библиотеку CUnit для оформления тестов.
  • За дополнительными комментариями обращайтесь к самим queue.h и tree.h.
  • В ядре Linux, кстати, есть аналогичные наборы макросов.

Attachments