2011-03-02 2 views
7

Какова самая полная реализация n-арного дерева для C++? Мне нужна простая (не повышающая BGL просьба) реализация для использования в проекте, совместимом с LGPL, поэтому Tree.hh не подходит.C++ n-ary tree library

+1

Каковы требования к дереву? Вы можете выбросить n-арное дерево за 10 минут, если требования достаточно просты. – corsiKa

+0

Какие операции вы хотите с этим делать? – Andrey

+0

Я не хочу тратить время на создание новой n-арной библиотеки деревьев, так как мне понадобятся почти все методы обхода. Требования: http://library.gnome.org/devel/glib/2.28/glib-N-ary-Trees.html, я думаю, что использую glib, но я пытаюсь найти что-то более дружественное к C++ , – Tarantula

ответ

1

То, что я обнаружил из этого вопроса, заключается в том, что нет простой, документированной, совместимой с LGPL библиотеки деревьев, которая сравнивается с реализацией дерева GLib n-ary. В конце концов, я использовал API C из GLib.

3

Я знаю, что вы сказали, что не хотите этого, но ... почему не по крайней мере демо/прототип с BGL? В худшем случае вы потратили несколько часов, и в лучшем случае вы понимаете, что (по крайней мере, для вашего конкретного случая использования) это не так сложно, как вы думали. Верхняя сторона заключается в том, что BGL, скорее всего, является наиболее проверенным вариантом.

+3

Я даже не смог найти простой пример BGL, реализующего простое дерево, я не хочу тратить время на библиотеку, в которой я буду использовать 10%. – Tarantula

+1

+1 Второй ответ. @Tarantula: Я использовал библиотеку Boost Graph для ряда проектов в период с 2004 года по настоящее время (я использую ее прямо сейчас, на самом деле). Я согласен с тем, что первоначальная документация немного подавляющая и тяжелая для «концептуальных» классов и итераторов. Но помимо этого, я не согласен с вами: «используя только 10% этого» - это поиск для BGL. Это библиотека только для заголовков, поэтому, если вы не используете что-то, это не повлияет на раздувание кода. – phooji

1

Автор Tree.hh кажется очень открытым для работы над лицензией, отличной от GPL. Почему бы вам не бросить ему линию и посмотреть, будет ли он открыт для освобождения от LGPL?