He explorado las definiciones de T-trees y árboles B-/B +. De los documentos en la web entiendo que los B-trees funcionan mejor en la memoria jerárquica, como las unidades de disco y la memoria en caché.¿Cuáles son las ventajas de los árboles T sobre árboles B +/-?
Lo que no puedo entender es por qué se usaron árboles T incluso para memoria plana?
Se anuncian como una alternativa de espacio eficiente a los árboles AVL.
En el peor de los casos, todos los nodos hoja de un árbol T contienen solo un elemento y todos los nodos internos contienen la cantidad mínima permitida, que es casi total. Esto significa que, en promedio, solo se utiliza la mitad del espacio asignado. A menos que esté equivocado, esta es la misma utilización que el peor de los árboles B, cuando los nodos de un árbol B están medio llenos.
Suponiendo que ambos árboles almacenen las claves localmente en los nodos, pero utilicen punteros para hacer referencia a los registros, la única diferencia es que B-trees tiene que almacenar punteros para cada una de las ramas. Esto generalmente causaría hasta un 50% de sobrecarga o menos (sobre árboles T), dependiendo del tamaño de las teclas. De hecho, esto está cerca de la sobrecarga esperada en los árboles AVL, suponiendo que no hay un puntero principal, registros incrustados en los nodos, claves incrustadas en los registros. ¿Es esta la ganancia de eficiencia esperada que nos impide usar B-trees en su lugar?
Los árboles T generalmente se implementan en la parte superior de los árboles AVL. Los árboles AVL son más equilibrados que los B-trees. ¿Se puede conectar esto con la aplicación de T-trees?
Muchas gracias por la respuesta. Es el primero y lo aprecio. Aunque dejaré la pregunta abierta en caso de que alguien comente las características de T-trees. Sé que están pasados de moda, por lo que poca gente está interesada en ellos, pero tienen su propia página en Wikipedia. Pensé que debían tener algunas características justificativas. Gracias de nuevo. – simeonz