Бібліотека базового класу в .NET має кілька чудових структур даних для колекцій (Список, Черга, Стек, Словник), але як не дивно, вона не містить жодних структур даних для бінарних дерев. Це надзвичайно корисна структура для певних алгоритмів, таких як ті, що використовують переваги різних шляхів обходу. Я шукаю правильно написану, безкоштовну реалізацію.
Я просто сліпий, і не знаходячи його ... чи похований він десь у BCL? Якщо ні, може хтось порекомендувати безкоштовну бібліотеку C # /. NET з відкритим кодом для двійкових дерев? Переважно той, який використовує дженерики.
EDIT: Щоб пояснити, що я шукаю. Мене не цікавлять впорядковані збірники словників, які внутрішньо використовують дерево. Мене насправді цікавить бінарне дерево - таке, яке виставляє свою структуру, щоб ви могли робити щось на зразок видобування піддерев або виконувати обхід вузлів після виправлення. В ідеалі такий клас можна було б розширити, щоб забезпечити поведінку спеціалізованих дерев (наприклад, червоний / чорний, AVL, збалансований тощо).