Estructura de datos y algoritmo para gráfico circular
Tengo un requisito para definirData Structure
yAlgorithm
paraCircular Data Graph
para cliente web.
En el servidor, los datos se proporcionarán en un formato CSV de 2 columnas (por ejemplo, Remitente, Receptor).
La salida final se representará enJSON
Formato y envío a petición web.
He visto algunosTree
Ejemplos que pueden ayudar en las relaciones entre padres e hijos. Pero en mi caso, tengo una relación recursiva.i.e. A Parent's grand child can also be used as a Parent
; lo que dificulta un poco la vida cuando corro en un bucle infinito.
Datos:
Sender,Receiver
A,B
A,H
B,C
B,D
D,E
E,F
F,G
G,C
H,I
H,J
J,K
K,L
L,M
M,K
L,N
N,O
N,P
P,A
N,Q
El cliente puede hacer esto (solo me importa la estructura de Java):
El cliente puede solicitar cualquier nodo y tengo que generar todo el árbol y enviar la respuesta, es decir, A, K o N.
Preguntas:
Lo que sera lo mejorData Structure
para este requisito? Por ejemploTree
como o cualquier otro?¿Debo escribir mi propia lógica para leer los datos y establecerlos?Tree
o hay algoritmos estándar por ahí?¿Cuál es la mejor manera de evitar la recursión?Cualquier ejemplo de trabajo realmente ayudará aquí :)
Por favor, vea también mi solución de trabajo a continuación.