diff options
-rw-r--r-- | lib/Graph/Implicit.pm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Graph/Implicit.pm b/lib/Graph/Implicit.pm index df3a434..03b9ebb 100644 --- a/lib/Graph/Implicit.pm +++ b/lib/Graph/Implicit.pm @@ -22,9 +22,19 @@ sub new { # generic information sub vertices { + my $self = shift; + my ($start) = @_; + my @vertices; + $self->dfs($start, sub { push @vertices, $_[1] }); + return @vertices; } +# XXX: probably pretty inefficient... can we do better? sub edges { + my $self = shift; + my ($start) = @_; + map { my $v = $_; map { [$v, $_] } $self->neighbors($v) } + $self->vertices($start); } sub neighbors { |