Структура данных и алгоритм для кругового графа

У меня есть требование определитьData Structure а такжеAlgorithm дляCircular Data Graph для веб-клиента.
На сервере данные будут предоставляться в формате CSV с двумя столбцами (например, Отправитель, Получатель).
Окончательный вывод будет представлен вJSON форматировать и отправлять на веб-запрос.
Я видел некоторыеTree примеры, которые могут помочь в отношениях между родителями и детьми. Но в моем случае у меня рекурсивные отношениi.e. A Parent's grand child can also be used as a Parent; что усложняет жизнь, когда я вхожу в бесконечный цикл.

Данные

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

Client может отображаться следующим образом (меня интересует только структура Java):
Client может запросить любой узел, и мне нужно сгенерировать все дерево и отправить ответ, то есть A, K или N.

Вопросов

Что будет лучшимData Structure для этого требования? НапримерTree нравится или что-то еще? Должен ли я написать свою собственную логику для чтения данных и установить вTree или есть какие-то стандартные алгоритмы? Какой лучший способ избежать рекурсии?

Любой рабочий пример действительно поможет здесь

Пожалуйста, ознакомьтесь с моим рабочим решением ниже.

Ответы на вопрос(4)

Ваш ответ на вопрос