Как я могу найти компоненты связности графа в Perl?

У меня есть следующий набор узлов и ребер. Я хочу найти весь отдельный граф из него.

my %connections=(36=>[31],10=>[3,4],31=>[30,22],30=>[20],22=>[20,8],20=>[1],8=>[5],5=>[2],2=>[1,20],  3=>[7]);

В этом примере это даст:

my %all_graph = {
   graph1 => {36=>[31],31=>[30,22],30=>[20],22=>[20,8],20=>[1],8=>[5],5=>[2],2=>[1,20]}.
   graph2  => {10=>[3,4],  3=>[7]} 
};

Существуют ли какие-либо существующие алгоритмы, которые делают это. ? alt text

7
задан neversaint 31 October 2010 в 01:54
поделиться