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.

Respuestas a la pregunta(4)

Su respuesta a la pregunta