¿Hay algún algoritmo para la visualización de estructura de datos en árbol? Intenté buscar en Google, pero no pude encontrar ninguno. Estoy bastante seguro de que tiene que haber algún algoritmo para esta tarea no tan simple. O alguien tiene algunas ideas?Algoritmo de visualización de árbol
Respuesta
Asunción: desea que cada nodo se muestre de manera que se centre sobre sus nodos secundarios.
Para lograr esto, calcule el ancho de cada nodo, que defino como la cantidad de espacio horizontal requerido para mostrar el subárbol completo de este nodo, de modo que no se superponga con los subárboles de los hermanos izquierdo o derecho.
Esto conduce a:
width = 1 + sum(widths of children's nodes)
lo tanto, hacer un recorrido en profundidad a través del árbol para calcular el ancho de cada nodo. Para visualizar, haz un recorrido transversal de ancho para dibujar el árbol nivel por nivel.
Esta es la idea aproximada de cómo hacerlo. Es posible que desee ajustar el cálculo de ancho dependiendo de los detalles de cómo le gustaría renderizar el árbol.
Puede usar el lenguaje DOT con graphviz, por ejemplo.
Tree-mapping es probablemente lo que estás buscando. Graphviz es bueno para visualizar estructuras de gráficos no especializadas para estructuras de árbol. No pude encontrarlo de nuevo, pero recuerdo haber leído en un artículo científico que los treemaps (creo que los voronoi) son óptimos para representar estructuras arbóreas, con respecto al lugar que consumen y que el área puede usarse para representar alguna unidad (como el tamaño del byte para ejemplo).
Here son algunas alternativas.
Here es una buena lista de artículos y otra información sobre el tema.
También puede imprimir el árbol de izquierda a derecha, es decir, la raíz a la izquierda, el primer nivel a la derecha y así sucesivamente. Encontrará el árbol impreso con cada nivel en su propia 'columna'. El algoritmo es algo como esto:
print(node, spaces):
if node has left child:
print(left_child, spaces + ' ')
print spaces + node + '\n'
if node has right child:
print(right_child, spaces + ' ')
Este algoritmo imprimirá un nodo de árbol por línea. Cada nivel del árbol se sangrará a la derecha por algunos espacios. Este algoritmo imprimirá los elementos en orden ascendente, pero el orden descendente se puede lograr procesando primero al niño correcto.
- 1. Visualización de árbol con Java
- 2. algoritmo de coincidencia de árbol?
- 3. Visualización del árbol de clasificación de Weka
- 4. Visualización de árbol en la página JSP
- 5. Visualización del árbol de procesos - tlist/tasklist
- 6. Visualización del algoritmo para C#
- 7. Algoritmo para el árbol de recorrido
- 8. Algoritmo para encontrar simetrías de un árbol
- 9. Visualización de visualización de mapa de árbol para la salida del generador de perfiles de Python
- 10. ¿Cómo hacer la visualización del algoritmo?
- 11. El mínimo más rápido algoritmo de árbol de expansión
- 12. Ruta de búsqueda de algoritmo en un árbol no dirigido
- 13. ¿Alguna sugerencia distribuida de algoritmo de búsqueda en árbol paralelo?
- 14. Encontrando la implementación del algoritmo del árbol de intervalos C++
- 15. ¿Hay una estructura de árbol o algoritmo para barajar los niveles en un árbol?
- 16. Visualización de un DAG
- 17. Algoritmo para encontrar bordes redundantes en un gráfico o árbol
- 18. visualización del gráfico de red JavaScript
- 19. de perfiles de visualización de datos
- 20. Árbol binario del árbol general
- 21. Visualización de eventos de calendario. Algoritmo para maquetar eventos con ancho máximo
- 22. Algoritmo de árbol de intervalo que admite la fusión de intervalos sin superposición
- 23. Visualización de entidades en TreeView usando MVVM
- 24. Centro de búsqueda del árbol
- 25. ¿Mejor algoritmo de aprendizaje para hacer un árbol de decisión en Java?
- 26. Algoritmo transversal de árbol para estructuras de directorios con muchos archivos
- 27. ¿Estrategia para implementar el algoritmo de desplazamiento de árbol en paralelo?
- 28. Visualización de árboles en VS2008
- 29. Algoritmo de alpinismo simple ejemplo
- 30. eliminar duplicados de árbol
¿Estás buscando algo como Graphviz? http://www.graphviz.org/ –
¿Está seguro de que está buscando un algoritmo o un servicio que lo muestre por usted? – Duniyadnd
Tengo que visualizar el árbol en mi proyecto, por lo tanto, necesito un algoritmo. – MrProper