Los árboles dinámicos desempeñan un papel importante en la resolución de problemas tales como flujos de red, gráficos dinámicos, problemas combinatorios ("Árboles dinámicos en la práctica" de Tarjan y Werneck) y diccionarios recientemente fusionados ("Un diccionario fusionable simple" de Adam Karczmarz),
Por árboles dinámicos me refiero a la definición establecida en el documento de Sleator & Tarjan "Una estructura de datos para árboles dinámicos" en 1983. Desde entonces se han publicado pocos esfuerzos dentro del área de investigación de programación funcional.
- Edward Kmett implementó una versión de los árboles ST principalmente como una traducción de la contraparte C ++, ver Árboles cortados por enlaces .
- Chris Okasaki escribió una implementación limitada de los árboles Splay en su famoso libro "Estructuras de datos puramente funcionales".
- Ralf Hinze y Ross Paterson introdujeron una estructura de datos funcional llamada 2-3 árboles de dedos, pero con un objetivo algo diferente del de la definición original de árboles dinámicos.
La implementación (y quizás el rendimiento) de los árboles dinámicos se divide de acuerdo con tres enfoques:
- Linealización, donde los árboles ET (Euler tour) juegan un gran papel. No se encontró un estudio puramente funcional.
- La descomposición del camino, donde los árboles ST son el buque insignia, acaba de encontrar la versión de Kmett.
- Contracción de árboles, donde los árboles superiores, los árboles de topología y los árboles RC son los jugadores. No se encontró un estudio puramente funcional.
El análisis y la implementación puramente funcional se pueden encontrar en Splay, AVL, árbol rojo-negro, pero NO son árboles dinámicos. Los primeros se consideran la estructura de datos sombra (también llamada virtual o auxiliar) de los segundos.
Entonces, mi pregunta es:
¿Cuáles son las razones (inconvenientes, debilidades) para que la comunidad de investigación de Programación Funcional no participe en la estructura de datos de los árboles dinámicos?