Estoy haciendo un proyecto en el que requiero estructura de datos btree o b + tree. ¿Alguien sabe de una implementación existente de btree o b + tree (con inserción, eliminación, algoritmos de búsqueda)? Debe aceptar cadena como entrada y formar btree o b + tree de esta cadena.Implementación existente del árbol Btree o B + en Java
Respuesta
En la falta de detalles sobre el problema que debe resolver, me permito sugerir una solución alternativa que podría resolver su problema: utilice un árbol rojo/negro en su lugar.
El árbol rojo/negro puede ser pensado como un árbol B, como se explica en Wikipedia:
Un árbol rojo-negro es similar en estructura a un árbol B de orden 4, donde cada nodo puede contener entre 1 y 3 valores y (en consecuencia) entre 2 y 4 punteros secundarios. En dicho árbol B, cada nodo contendrá solo un valor que coincida con el valor en un nodo negro del árbol rojo-negro, con un valor opcional antes y/o después en el mismo nodo, ambos coincidentes con un nodo rojo equivalente del árbol rojo-negro [...]
Java tiene dos clases incorporadas, TreeMap y TreeSet, que proporcionan los árboles rojo/negro. Ninguno de estos tomará una cadena como entrada y hará crecer un árbol a partir de ella, pero es posible que pueda implementar algo similar "alrededor" de una de esas clases.
gracias por la sugerencia. Trataré de usar su idea – rohit
jdbm tiene una implementación muy sólida de b + tree. También h + tree que es una estructura de datos relacionada interesante.
Desde entonces ha habido [JDBM3] (https://github.com/jankotek/JDBM3) y [JDBM4 que se renombró a MapDB] (http: // www .mapdb.org /). –
@PeterLamberg sí - MapDB se perfila como un proyecto muy agradable. Aún faltan algunas semanas para la primera publicación estable, pero se ve muy bien. Tenga en cuenta que MapDB no está utilizando b + tree b/c de requisitos de concurrencia. Creo que están utilizando un árbol vinculado de algún tipo. –
Puede probar el BTree de Electric (author page here).
He tenido que implementar el mío propio y abrir el code.
No lo he probado pero el método de división era lo que estaba buscando con cada inserción y quité. Con solo 2 elementos, esto ocurrirá casi todo el tiempo. Pregunta: ¿Mezclas el elemento de nivel superior? Digamos que tiene datos de 1 -5000 (5000 por el bien de este comentario) y tenía el primer elemento como 300, ¿no tendría sentido tenerlo tan cerca de 2500? – Mukus
btw .. +1 por su respuesta. – Mukus
@TejaswiRana He probado con 5000 elementos (1-5000) y la raíz terminó con el valor 2048. La implementación predeterminada es de 2 a 3 árboles, pero eso solo fue para fines de prueba. Puede pasar el orden (minKeySize) del árbol en el constructor. – Justin
- 1. Mysql B + implementación de árbol
- 2. javascript implementación del árbol de búsqueda binaria
- 3. ¿Hay algún árbol B o sitios que muestren visualmente cómo funciona un árbol B?
- 4. Árbol AVL contra árbol B
- 5. Implementación java segmento de árbol
- 6. Implementación de árbol genérico en Java
- 7. Cualquier implementación de árbol hash Java?
- 8. implementación del árbol de sufijos en python
- 9. generalizada sufijo árbol de Java Implementación
- 10. C++ R - implementación del árbol deseada
- 11. Implementación del algoritmo Bentley-Ottmann existente
- 12. ¿Cuándo elegir el árbol RB, B-Tree o AVL?
- 13. ¿Qué es un árbol B *?
- 14. Implementación B + Tree del sistema de archivos en C#
- 15. ¿Math.max (a, b) o (a> b)? A: b son más rápidos en Java?
- 16. Encontrando la implementación del algoritmo del árbol de intervalos C++
- 17. Por qué Java Collections API no tiene implementación de árbol
- 18. ¿Busca la implementación del árbol de sufijos en C#?
- 19. ¿Qué es una página de árbol B
- 20. ventaja de BTREE?
- 21. Árbol binario del árbol general
- 22. Postgres GIST vs índice Btree
- 23. árbol de búsqueda binaria en C# Implementación
- 24. Implementación del patrón singleton en Java
- 25. Implementación del proveedor de OAuth en Java
- 26. Modificación del contenido del archivo existente en Java
- 27. Rendimiento del rendimiento anidado en un árbol
- 28. Java mesa de oscilación del árbol
- 29. Error de MySQL UTILIZANDO BTREE
- 30. ¿Cómo se puede representar un nodo de árbol B?
@rohit: He hecho algo de edición de su pregunta para que sea un candidato menos obvio para "una pregunta cercana pero no real". Si no le gustan mis cambios, no dude en revertirlos. –
¿Puede explicar en qué va a utilizar la estructura de datos? –