Поиск всех связанных компонентов неориентированного графа
У меня есть список объектов (неориентированных ребер), как показано ниже:
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, но любой пример с другими языками был бы очень полезен. Благодарю.