diff options
author | doy <doy@tozt.net> | 2008-12-14 18:20:29 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2008-12-14 18:20:29 -0500 |
commit | b0cf5205e0abbf2c6fd4014755d9e304bf7bd34a (patch) | |
tree | 341b52d99f7a2b5b28f7de3a111fee09699f96c5 | |
parent | db3904fd6b81e3283bb27d19c182c0926e34a7ce (diff) | |
download | graph-implicit-b0cf5205e0abbf2c6fd4014755d9e304bf7bd34a.tar.gz graph-implicit-b0cf5205e0abbf2c6fd4014755d9e304bf7bd34a.zip |
implement vertices and edges
-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 { |