Поиск всех связанных компонентов неориентированного графа

У меня есть список объектов (неориентированных ребер), как показано ниже:

pairs = [

 pair:["a2", "a5"],
 pair:["a3", "a6"],
 pair:["a4", "a5"],
 pair:["a7", "a9"]

];

Мне нужно найтивсе компоненты (связанные узлы) в отдельных группах. Итак, из заданных пар мне нужно получить:

groups = [
  group1: ["a2", "a5", "a4"],
  group2: ["a3", "a6"],
  group3: ["a7", "a9"]
];

Я на самом деле прочитал некоторые ответы здесь и погуглил это, и вот как я узнал, что это называется «поиск связанных компонентов в графике», но не смог найти какой-либообразец кода, Я использую JavaScript на Node.js, но любой пример с другими языками был бы очень полезен. Благодарю.

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

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