A biblioteca de classes base em .NET tem algumas estruturas de dados excelentes para coleções (Lista, Fila, Pilha, Dicionário), mas estranhamente ela não contém nenhuma estrutura de dados para árvores binárias. Essa é uma estrutura extremamente útil para certos algoritmos, como aqueles que tiram proveito de diferentes caminhos de passagem. Estou procurando uma implementação gratuita escrita corretamente.
Estou simplesmente cego e não o encontro ... está enterrado algures no BCL? Se não, alguém pode recomendar uma biblioteca C # / .net gratuita ou de código aberto para árvores binárias? De preferência um que use genéricos.
EDIT: Para esclarecer o que estou procurando. Não estou interessado em coleções de dicionário ordenadas que usam internamente uma árvore. Na verdade, estou interessado em uma árvore binária - uma que expõe sua estrutura para que você possa fazer coisas como extrair subárvores ou realizar travessia pós-correção nos nós. Idealmente, essa classe poderia ser estendida para fornecer os comportamentos de árvores especializadas (ou seja, vermelho / preto, AVL, balanceado, etc).