Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R....
Transcript of Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R....
![Page 1: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/1.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Mira esa secuencia... ¿Es un vector? ¿Es una lista?¡No! ¡¡Es un Súper Árbol!!
Martín Knoblauch Revueltahttp://www.mkrevuelta.com @mkrevuelta [email protected]
indizen using std::cpp
Except where otherwise noted, this work is licensed under:http://creativecommons.org/licenses/by-nc-sa/4.0/
Universidad Carlos III de Madrid,30 de noviembre de 2017
![Page 2: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/2.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Presentación disponible en mi blog semiabandonado:http://www.mkrevuelta.com
![Page 3: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/3.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Índice
1. El problema
2. Super Árbol
3. Vista no proporcional
4. Aplicaciones
5. Propuestas similares
6. Reflexionemos
![Page 4: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/4.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Introducciónal problema
![Page 5: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/5.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Are lists evil?–Bjarne Stroustrup
https://isocpp.org/blog/2014/06/stroustrup-lists
![Page 6: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/6.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Array
Acceso aleatorio rápidoInserción/extracción... lentas
![Page 7: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/7.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Lista enlazada
Inserción/extracción rápidasAcceso aleatorio... leeeento
![Page 8: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/8.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
¿Cómo compararlos?
![Page 9: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/9.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Sugerencia de Jon Bentley
![Page 10: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/10.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Sugerencia de Jon Bentley
“Insert a sequence of random integersinto a sorted sequence,
then remove those elements one by oneas determined by
a random sequece of positions”
![Page 11: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/11.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Resultado
![Page 12: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/12.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Conclusión
El vector es más rápidoen cierta proporción fija
(una proporción considerable)
Pero...¿Nos interesa realmenteel problema de Jon Bentley?
![Page 13: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/13.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Super Árbol
![Page 14: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/14.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Árbol aumentado (enredado)Como una lista, pero con dos “siguientes” (izq., y der.)
![Page 15: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/15.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Árbol aumentadoMetadato especial: número de nodos del sub-árbol
![Page 16: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/16.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Acceso aleatorio (1/3)
template <typename T>struct node{
node <T> * left; // Sub -árbol izq.node <T> * right; // " " der.std:: size_t count; // Núm. nodosT value; // Carga útil
};
![Page 17: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/17.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Acceso aleatorio (2/3)
template <typename T>node <T> * RandomAccess (node <T> * root ,
std:: size_t pos){
if (pos >= root ->count)return nullptr;
node <T> * p = root;
![Page 18: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/18.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Acceso aleatorio (3/3)for (;;){
std:: size_t nLeft = p->left ?p->left ->count : 0;
if (pos == nLeft) return p;else if (pos < nLeft) p = p->left;else // (pos > nLeft){
pos -= nLeft + 1;p = p->right;
} } } // fin
![Page 19: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/19.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Vista proporcional
![Page 20: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/20.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Complejidad computacional
Acceso Inserción/ Suma dealeatorio Extracción ambas
Array O(1) O(N) O(N)
Lista O(N) O(1) O(N)
Súper Árbol O(log(N)) O(log(N)) O(log(N))
![Page 21: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/21.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Complejidad computacional (leyenda)O(1) = constanteO(log(N)) = logarítmicaO(N) = linealO(N log(N)) = “linearítmica”O(Nc) = polinómicaO(cN) = exponencialO(N!) = factorial
N: tamaño del problema, c : constante > 1
![Page 22: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/22.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Complejidad computacional
Acceso Inserción/ Suma dealeatorio Extracción ambas
Array
Lista
Súper Árbol
![Page 23: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/23.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Complejidad computacional
(1 acc. aleatorio+ 1 ins./extr.) ×N = total
Array
Lista
Súper Árbol
![Page 24: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/24.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Resultado (1/3) — pocos elementos
![Page 25: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/25.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Resultado (2/3) — muchos elementos
![Page 26: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/26.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Resultado (3/3) — escala logarítmica
![Page 27: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/27.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Ideal para la playa
![Page 28: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/28.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Vistano proporcional
![Page 29: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/29.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Leyenda en vista proporcional
![Page 30: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/30.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Leyenda en vista no proporcional
![Page 31: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/31.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Suma en vista no proporcional
![Page 32: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/32.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Vista no proporcional
![Page 33: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/33.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Aplicaciones
![Page 34: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/34.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Editor de texto
Secuencia de líneasNúmero de bytesNúmero de líneas tras el ajusteNúmero de caracteresSi no es texto plano, número de píxels
gtkÁrbol B+ “ad hoc” con número de caracteres y líneas
![Page 35: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/35.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Brazo robot o cadena de moléculas
Secuencia de transformaciones detraslación y rotaciónOperación de vista no proporcional:suma y producto de matrices
![Page 36: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/36.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Versión en disco: shiftable_filesImplementación basada en proyección de archivosen memoriaCódigo horrible (¡macros!)Metadatos en el propio archivoAl cerrar se puede optar por:
1 Recompactar el archivo, ó...2 dejarlo tal cuál, con los metadatos
¿Cómo seguir el rastro de las secciones?Con una secuencia en memoria convista no proporcional
![Page 37: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/37.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Edicion de archivos XML gigantes
Una primera pasada puede construir un índice enmemoria (no necesariamente completo)Se puede insertar/extraer nodos sin reescribir todoel archivoHay que mantener el índice al día, claro¿Recompactar al cerrar?
1 Sí: vuelve a ser un XML normal2 No: más rápido
![Page 38: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/38.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Propuestas similares
![Page 39: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/39.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Multi Index (1/2)boost:: multi_index_container<
T,boost:: multi_index :: indexed_by<
boost:: multi_index :: ranked_non_unique<
boost:: multi_index ::identity <T>,unordered_less <T>
>>
>
![Page 40: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/40.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Multi Index (2/2)
template <typename T>struct unordered_less{
bool operator () (const T &,const T &) const
{return false;
}};
![Page 41: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/41.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Propuestas similares en Boost (1/2)2004 – La mención más antigua (no sé siimplementada), por Peter Palotashttp://lists.boost.org/Archives/boost/2004/03/62823.php
2006 – “Hierarchical Data Structures” porBernhard Reiter y René Riverahttp://www.open-std.org/jtc1/sc22/wg21/docs/
papers/2006/n2101.html#tr.hierarchy.augment
2006 – “AVL Array” (horrible nombre, lo sé)http://sourceforge.net/projects/avl-array
“Rank List” tras debate en foro de Boost
![Page 42: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/42.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Propuestas similares en Boost (2/2)
2012 – Countertree por Vadim Stadnikhttp://dl.dropbox.com/u/8437476/works/
countertree/doc/index.html (enlace roto)2015 – SegmentedTree por Chris Clearwaterhttps://det.github.io/segmented_tree/
![Page 43: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/43.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Propuestas similares fuera de Boost
“Simon Tatham’s Algorithms Page”https://www.chiark.greenend.org.uk/
˜sgtatham/algorithms/cbtree.html
“Counted B-trees: An enhancement to the wellknown B-tree algorithms to allow you to look upitems in the tree by numeric index, or tofind the numeric index of an item. Useful forfinding percentiles, [...]”
![Page 44: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/44.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Propuestas similares en Python
https://pypi.python.org/pypi/rbtreehttps://pypi.python.org/pypi/pyavlhttps://pypi.python.org/pypi/blist
![Page 45: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/45.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Reflexionemos
![Page 46: Mira esa secuencia ¿Es un vector? ¿Es una lista? ¡No! ¡¡Es ... · SuperÁrbol MartínK.R. indizen Intro SuperÁrbol Vistano proporcional Aplicaciones Propuestas similares Reflexionemos](https://reader033.fdocuments.in/reader033/viewer/2022052003/60168ce247dc8560e46da3c8/html5/thumbnails/46.jpg)
Super Árbol
Martín K.R.indizen
Intro
Super Árbol
Vista noproporcional
Aplicaciones
Propuestassimilares
Reflexionemos
Muchas gracias
¿Alguna pregunta?