La biblioteca de clases base en .NET tiene algunas estructuras de datos excelentes para colecciones (Lista, Cola, Pila, Diccionario), pero curiosamente no contiene ninguna estructura de datos para árboles binarios. Esta es una estructura tremendamente útil para ciertos algoritmos, como los que aprovechan diferentes rutas transversales. Estoy buscando una implementación gratuita y correctamente escrita.
¿Estoy simplemente ciego y no lo encuentro ... está enterrado en algún lugar del BCL? Si no es así, ¿alguien puede recomendar una biblioteca C # / .NET gratuita o de código abierto para árboles binarios? Preferiblemente uno que emplee genéricos.
EDITAR: Para aclarar lo que estoy buscando. No me interesan las colecciones de diccionarios ordenadas que utilizan internamente un árbol. De hecho, estoy interesado en un árbol binario, uno que exponga su estructura para que pueda hacer cosas como extraer subárboles o realizar un recorrido posterior a la corrección en los nodos. Idealmente, dicha clase podría extenderse para proporcionar los comportamientos de árboles especializados (es decir, rojo / negro, AVL, equilibrado, etc.).