В библиотеке базового класса .NET есть несколько отличных структур данных для коллекций (List, Queue, Stack, Dictionary), но, как ни странно, он не содержит никаких структур данных для двоичных деревьев. Это ужасно полезная структура для определенных алгоритмов, таких как те, которые используют различные пути обхода. Я ищу правильно написанную, свободную реализацию.
Я просто слепой, и не нахожу его... он похоронен где-то в БКЛ? Если нет, может ли кто-то рекомендовать бесплатную или открытую библиотеку С#/.NET для двоичных деревьев? Предпочтительно тот, который использует дженерики.
EDIT: Чтобы уточнить, что я ищу. Меня не интересуют упорядоченные коллекции словарей, которые внутренне используют дерево. Меня действительно интересует двоичное дерево - одно, которое раскрывает его структуру, чтобы вы могли делать такие вещи, как извлечения поддеревьев, или выполнять обходное исправление на узлах. В идеале такой класс может быть расширен, чтобы обеспечить поведение специализированных деревьев (например, Red/Black, AVL, Balanced и т.д.).