in reply to Re^2: Print all possible paths in a graph and some graph creation too!
in thread Print all possible paths in a graph and some graph creation too!
A quick solution to your issue (with a complexity of O((n*m)^2) (n being the number of levels and m the maximum nodes per level):
The code below solves your issue. It is however just a short hack and in no way optimized. But it hopefully gives you an idea.
HTH, Rata
use strict; use warnings; my %nodes = ( A => 2, B => 4, C => 5, D => 1); my @path = (""); my @newpath; foreach my $k (sort (keys(%nodes))) # each level { my @nodename; for (my $i = 1; $i <= $nodes{$k}; $i++) { push (@nodename, "$k$i"); # generate + node-names for each level } foreach my $old (@path) # take all +old paths { foreach my $new (@nodename) # appen +d new node to each { push (@newpath, "$old-$new"); } } @path = @newpath; # save +old paths @newpath = (); # clear lis +t of new paths } print join("\n", @path); # print all paths (each in a new line) exit 0;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Print all possible paths in a graph and some graph creation too!
by tsk1979 (Scribe) on Aug 17, 2010 at 08:47 UTC |