Библиотека базовых классов в .NET имеет отличные структуры данных для коллекций (List, Queue, Stack, Dictionary), но, как ни странно, не содержит никаких структур данных для двоичных деревьев. Это очень полезная структура для определенных алгоритмов, например для тех, которые используют преимущества различных путей обхода. Ищу правильно написанную бесплатную реализацию.
Я просто слепой и не нахожу его ... где-то в BCL? Если нет, может ли кто-нибудь порекомендовать бесплатную или открытую библиотеку C # /. NET для двоичных деревьев? Желательно тот, который использует дженерики.
РЕДАКТИРОВАТЬ: чтобы уточнить, что я ищу. Меня не интересуют упорядоченные коллекции словарей, которые внутренне используют дерево. На самом деле меня интересует двоичное дерево - такое, которое раскрывает свою структуру, чтобы вы могли делать такие вещи, как извлечение поддеревьев или выполнение обхода узлов после исправления. В идеале такой класс может быть расширен для обеспечения поведения специализированных деревьев (например, красный / черный, AVL, сбалансированный и т. Д.).