Hoy escuché una conferencia sobre fenwick trees (árboles binarios indexados) y la maestra dice que este árbol es una generalización de árboles de intervalo y segmento, pero mis implementaciones de estas tres estructuras de datos son diferentes. ¿Es verdadera esta afirmación? ¿y por qué?¿El intervalo, el segmento, los árboles fenwick son iguales?
Respuesta
Nunca he escuchado binary indexed trees llamado generalización de algo. Ciertamente no es una generalización de interval trees y segment trees. Te sugiero que sigas los enlaces para convencerte de esto.
que este árbol es una generalización de intervalos y segmentos árboles
Si por "este árbol" tu maestro significaba "el árbol indexado binaria", entonces él está equivocado.
pero mis implementaciones de estos tres estructuras de datos son diferentes
Por supuesto que son diferentes, su profesor nunca dijo que no debe ser. Él acaba de decir que una es una generalización de la otra (lo cual no es cierto, pero aún así). De cualquier manera, se supone que las implementaciones son diferentes.
Lo que tendría la misma aplicación es un árbol binario de indexado y un árbol de Fenwick, porque los son lo mismo.
vi el artículo del topcoder y muchas consultas en BIT son similares a los árboles de intervalos. – Luiguis
Pueden ser similares, pero eso no significa que pueda decir que una estructura de datos se deriva de otra. Un nodo en el árbol de intervalos contiene la mitad del intervalo que posee su nodo primario, mientras que un nodo en un BIT contiene un intervalo dado por la representación binaria de un número. – IVlad
La siguiente clasificación parece sensata, aunque diferentes personas mezclarán estos términos.
Fenwick árbol/árbol binario indexadoslink
En el que se utiliza una sola matriz y las operaciones en la representación binaria para almacenar sumas de prefijo (también llamados sumas acumuladas). Los elementos pueden ser miembros de un monoide.
árbol Rangolink
La familia de árboles, donde cada nodo representa un subrango de un rango determinado, por ejemplo [0, N]. Se usa para calcular operaciones asociativas en intervalos.
árbol de intervalolink
árboles en donde almacena los intervalos reales. Lo más común es tomar un punto medio, mantener los intervalos de intersección en el nodo y repetir el proceso para los intervalos a la izquierda y a la derecha del punto.
árbol Segmentolink
similar a un árbol rango donde las hojas son intervalos elementales en un espacio, posiblemente, continua en lugar de nodos discretos y más altas son las uniones de los intervalos elementales. Usado para verificar la inclusión de puntos.
- 1. Determine si dos árboles binarios son iguales
- 2. ¿Los árboles de expresión LINQ son árboles apropiados?
- 3. El programa y los datos son iguales en Prolog?
- 4. ¿Por qué son importantes los árboles binarios?
- 5. ¿Son dos funciones iguales?
- 6. ¿CDN y Cloud son iguales?
- 7. ¿Cómo son los árboles rojo-negro isomorfos a 2-3-4 árboles?
- 8. ¿Cuáles son las ventajas de los árboles T sobre árboles B +/-?
- 9. std :: ordena el comportamiento con ints que son iguales
- 10. ¿Por qué el operador! = De Python piensa que los argumentos son iguales y no iguales al mismo tiempo?
- 11. ¿Cuáles son algunos ejemplos en los que los árboles de expresiones son útiles?
- 12. ¿Por qué Java no ve que los enteros son iguales?
- 13. pitón reducir comprobar si todos los elementos son iguales
- 14. varchar (20) y varchar (50) son iguales?
- 15. Cocoa: compruebe si dos NSArrays son iguales
- 16. dado dos árboles de directorios ¿cómo encontrar qué archivos son los mismos?
- 17. LINQ: compruebe si dos listas son iguales
- 18. Comprueba si dos vectores son iguales
- 19. ¿Qué son los modelos para almacenar estructuras de árboles y cuáles son sus características?
- 20. ¿Son estas dos configuraciones iguales en maven?
- 21. ¿Por qué estos números no son iguales?
- 22. ¿Por qué arr y & arr son iguales?
- 23. Son "{Binding Path =.}" Y "{Binding}" realmente iguales
- 24. Nothing = String.Empty (¿Por qué son iguales?)
- 25. .NET objetos que son iguales no dicen que son
- 26. PHP: Probando si tres variables son iguales
- 27. ¿Qué son los árboles de expresión, cómo los usa y por qué los usaría?
- 28. Comparando dos números que son aproximadamente iguales
- 29. ¿Cuándo dos enumeraciones son iguales en C#?
- 30. ¿Por qué los objetos Buffer y List son iguales (incluso si son de clases diferentes)?
Hay una diferencia entre afirmar que "A es una generalización de B" y "A es lo mismo que B". –